Banq大大你对事件回溯的必要性

事件回溯是否有可选性?请banq大大谈谈吧,也就是有没有可能有些Aggre不必事件记录和回溯,而只是简单的database -> aggre object ,还是必须都要事件回溯?

是否需要回溯,取决于你的架构。

SOA架构主要是存储状态,通过仓储实现database和aggre object转换,这也符合DDD中仓储定义的原义。这种技术架构称为D-EDA+SOA,如下图:

EventSourcing系统需要通过事件来还原状态,需要事件回溯和重建,不像D-EDA+SOA这种演化架构,这是一个革命性架构,适合新的系统,风险等还是有,需要等成熟方案。
[该贴被admin于2013-12-01 09:10修改过]

恩,也就是说并不是非要采用事件回溯技术,而是根据需求而定,另外就是这种新技术理念还需要再沉淀沉淀,之后更加稳妥,是吧?

如果CQRS使用EventSourcing+EventStore更完整些。而且达到一些意想不到的效果,见:
解决CQRS瓶颈http://www.jdon.com/45935

推荐一篇最新PPT看看,Agile, Architecture, DDD and CQRS:
http://www.slideshare.net/jeppec/agile-ddd-cqrs,里面有.net的CQRS代码演示,作者曾经写过你的SOA已经使用了EDA和CQRS吗?

另外一个思路 领域事件驱动架构Domain EDA:
http://www.slideshare.net/stnor/event-driven-architecture-3395407,主要从EDA和SOA的服务总线结合方面切入,将领域模型中发生的领域事件作为消息发送到服务总线上,相当于SOA 服务-->Aggre -->Event -->BUS,而不是传统的在SOA服务中直接发送消息到BUS。

[该贴被banq于2013-12-01 11:52修改过]