微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

域驱动设计 – 在ES CQRS DDD中,事件是否可以根本不更新任何真实域状态?

是否可以在事件流中包含不影响域状态中任何聚合的事件?

举个例如AllCompletedTodosPurged之类的事件,除了通过删除所有已完成的待办事项来更改具有活动待办事项的读取模型.

解决方法

不,这不行.聚合状态更改时会生成域事件.如果没有任何改变,则没有域事件.

您也可以使用域外的事件,但它们不会成为域的一部分,显然不是事件流的一部分.

在您的方案中,如果事件不是由聚合更改生成的,那么为什么它应该被任何聚合包含?从技术上讲,如果事件不属于任何事件,您将在哪个事件流中添加该事件?你会为所有涉及的Todos添加该事件吗?这没有道理.

我不确定清除是否属于您的域名,但如果是,则意味着所有已完成的待办事项都被“删除”,即每个涉及的聚合已经在其集合中具有TodoDeleted事件. AllCompletedTodosPurged只是一个对更新读取模型有用的事件,但就是这样.它不应该影响域模型.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐