DDD的革命: CQRS和Event Sourcing

banq 10-06-12
              

Gojko Adzic » Evolution of DDD: CQRS and Event Sourcing

Greg Young 一直在DDD实践领域很活跃,CQRS倡导将读写分离,那么读写分离以后,我们是否需要使用同一个数据源呢?

Greg Young倡导将查询读的数据和命令修改的模型都是同一种正常的领域模型,我们所做的就是在两者之间同步,比如ForumMessage这个正常的领域实体模型,既可用在命令事务中,也可用在查询中,关键问题是:模型在命令中如果被修改,如何及时更新同步查询。

该文提出,模型在命令事务结束后,可以发出Event事件 domain events更新查询。当然,进一步,可以实现Event 存储,这样有利于测试跟踪调试,也有利于使系统更加健壮,如果哪个环节出错,我们replay一下事件即可。




              

7
tianhaoleng
2010-06-13 10:31

简单事情复杂化,封装若干层以后除了增加复杂度和加大维护的门槛没有任何好处,觉得绕了N多圈依然回到原处。

真正的OO要从自然界中习得,学习上帝的设计方式。

事情远没你想得复杂,又比你想得复杂。

IceQi
2010-06-13 11:54

用消息代替数据是一种良好的系统解耦合的方式,也是符合自然世界中现实情况的方案。

本质上是接口定义方式的转变,从“你要做什么”转变为“发生了什么事”。模块基于对纯粹业务过程的理解才能够变得通用。

tianhaoleng
2010-06-13 15:28

试问,为什么要在domain对象中操作数据库或者一些基础设施?

3Go 1 2 3 下一页