问个问题跟DDD相关的问题

在DDD中两个BoundContext中的Agg是如何交互的?如果采用事件进行交互,那么在一个UnitOfWork中,事件源Agg的属性状态发生了多次变化,最后uintofwork提交时可能有变化也可以没变化,此时假设有变化的情况下;那么此时是发出一个事件还是多个事件,那些属性变化的临时值是有有必要也发出来;那如果不发出来只发出一个uow中的最终状态的事件;如何做到一般化处理?如果不用事件交互,那有什么办法交互啊?谢谢

不要再使用unit of work了,要做到一次只修改一个聚合根;如果要修改多个聚合根,则实现为最终一致性;第一个聚合根修改后,产生事件,框架会负责把事件publish出去,然后第二个聚合根响应事件;至于框架何时publish事件,每个框架不同;enode中则是在持久化事件之后,publish事件。

unit of work是经典ddd中的概念,用于应付一次处理多个聚合根的情况下,将多个聚合根的修改实现为事务;而更好的做法,应该是要做到一次只修改一个聚合根,聚合内强一致性,聚合之间最终一致性;所以,不要再使用unit of work了。