今天在向brighthas请教这个问题的时候,他提出了我之前没有想到的问题,也就是解决第一个问题的答案--snapshot,我之前没有想到这个答案。感谢brighthas。
因为snapshot保存了该对象实例当时的状态,而从这个状态为起点在读取向后发生的事件就可以准确还原出该实例的当前状态,但新问题又来了:
1、创建snapshot的粒度,也即是快照策略(snapshot strategy)?
2、snapshot的结构,是创建整个聚合根的快照呢还是聚合根内的所有实体都要单独创建快照并持久化?
3、snapshot包含当时领域对象的所有属性么?因为可能会存在集合属性这种1对N的情况