解决方法
不,这不行.聚合状态更改时会生成域事件.如果没有任何改变,则没有域事件.
您也可以使用域外的事件,但它们不会成为域的一部分,显然不是事件流的一部分.
在您的方案中,如果事件不是由聚合更改生成的,那么为什么它应该被任何聚合包含?从技术上讲,如果事件不属于任何事件,您将在哪个事件流中添加该事件?你会为所有涉及的Todos添加该事件吗?这没有道理.
我不确定清除是否属于您的域名,但如果是,则意味着所有已完成的待办事项都被“删除”,即每个涉及的聚合已经在其集合中具有TodoDeleted事件. AllCompletedTodosPurged只是一个对更新读取模型有用的事件,但就是这样.它不应该影响域模型.