【发布时间】:2018-12-03 15:28:15
【问题描述】:
我想澄清一下,聚合模型应该是什么样子。 我有几个事件,其中包含永远不会用于验证的数据。
例如,触发操作的 user_id(审计)、correlation_id(可观察性)、标签/标志等元数据。
它们将在命令中接收,并将作为事件的属性发送出去。它不会丢失,因为每个事件都持续存在。很清楚。
但是聚合对象应该包含这些值吗? 投影将拥有它们并将显示它们。在我看来,将它们放在 Aggregate 中没有意义。
或者,确实如此。如果要创建快照,则需要所有事件的属性。
谢谢你的建议。
【问题讨论】:
-
我同意你的观点,并说“将它们放在 Aggregate 中没有意义”,除非它们用于验证。你如何存储你的聚合?它们是事件源的,不是吗?
-
是的,它们是 - 正如我所写,每个事件都是持久的。
-
如果您的聚合是事件来源的,那么您的聚合不需要这些值。更重要的是,验证所需的所有值只是聚合的内部状态。因此,聚合的公共 API 可以只是它们的行为(方法)
标签: domain-driven-design cqrs event-sourcing