发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

问个问题跟DDD相关的问题

    
2014-05-30 11:19
赞助商链接

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

1
2014-05-30 13:06

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

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

DDD聚合     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com