只有那些改变了聚合根实体内部状态的事件才要求保存,以便查询系统能够根据这些事件重演知道当前聚合根最新状态。
[该贴被banq于2012-09-23 20:16修改过]
2012-09-23 20:56 "@zdp120"的内容
难道article被浏览的次数不是业务逻辑吗,应该也是实体状态的一种改变吧 ...
如果在CMS中被认为是逻辑,你可以整合入聚合根,但是鉴于其变化太快,可以单独一个对象,这样更新时不会影响其他对象更新。
这就考虑到CQRS查询系统对浏览次数的更新及时性,如果每次浏览都需要更新CQRS的查询系统,那确实冲击很大,可以采取定时发送事件,用户是可以容忍浏览次数有一定的不一致性,最终一致性。
总之,需要在频繁更新和几个系统之间更新及时性上做一个平衡。参考:
CAP原理和BASE思想