【问题标题】:CQRS Event Sourcing valueobject & entities accepting commandsCQRS 事件溯源值对象和接受命令的实体
【发布时间】:2020-10-15 13:24:09
【问题描述】:

专家,

我正在评估将设计精美的 DDD 应用程序作为宠物项目迁移到事件源架构。

可以推断,我的聚合操作是相对粗粒度的。作为我设计过程的一部分,我现在发现自己从一小部分操作中发出大量事件,以满足我所知道的读取模型的要求。这是可接受的做法吗?

除此之外,我还通过使用 ValueObjects 和实体提炼了很多领域的复杂性。 VO's/E 可以接受命令并自己发出事件,还是应该公开状态并从命令处理程序添加到堆栈的下方?

根据 VO 的说明,我很少使用可变操作,这是在使我的领域的其他领域过于复杂之间进行权衡。

【问题讨论】:

    标签: cqrs event-sourcing


    【解决方案1】:

    我现在发现自己从一小部分操作中发出大量事件,以满足我所知道的读取模型的要求。这是可接受的做法吗?

    在大多数情况下,您应该通过命令获得 1 个事件。请记住,事件描述了用户意图,因此您必须贴近用户操作。

    VO's/E 可以接受命令并自己发出事件

    不仅聚合会发出事件,是的,如果您有很多事件,您可能会想出非常混乱的聚合,但是有一些解决方案,例如将工作委托给命令和事件本身。我在这里写了关于这种技术的博客:https://dev.to/maximegel/cqrs-scalable-aggregates-731

    根据 VO 的说明,我很少使用可变操作

    只要你知道后果。没关系。权衡是工作的一部分,但请确保您的团队意识到这一点,因为到处都写着值对象是不可变的,您将自己暴露在混乱和指针问题中。

    【讨论】:

      猜你喜欢
      • 2020-07-12
      • 2019-01-31
      • 2018-11-15
      • 2019-09-22
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多