【发布时间】:2018-12-08 21:30:36
【问题描述】:
我的事件溯源模型中有一些相当恒定的聚合,它们会累积大量事件。我正在考虑使用快照来优化这些聚合体的再水合。 IE。聚合体是仓库。
我的问题是我是否应该为快照生成特定事件,例如“WarehouseStateSnapshotted”。在我当前的原型中,快照状态保存在几个命令处理程序中存在的重复代码中。我觉得这不是处理它的正确区域。我宁愿将快照的事件分派到我的服务总线,并让事件处理程序处理保存快照状态。 然而,这可能违反了他们自己的领域驱动的事件模式。 有其他人为快照创建的事件吗?
如果这不是正确的方法,我是否应该至少将我的快照逻辑从命令处理程序中移到聚合类中?
谢谢!
编辑: 标题和 -- This 评论似乎暗示了快照,因为域事件是错误的方法。
EDIT2: 简化问题 - 将 repos 注入命令处理程序是否合适?
【问题讨论】:
-
将存储库注入命令处理程序将取决于您的命令处理程序所在的位置。如果您的意思是处理命令的聚合方法,那么不,不要注入存储库。我建议将相关值传递给方法。然而,如果命令处理程序是一个服务总线消息处理程序(集成层),那么它绝对没问题,因为真的没有其他方法 :)
-
嗯,好的。我的命令处理程序是总线上使用 mediatR 的消息,其中每个都调用相关的聚合处理程序来更改状态。我相信这是正确的做法。
标签: event-handling domain-driven-design cqrs snapshot event-sourcing