CQRS储存事件,那么事件的结构能否举个例子呢?

关于CQRS我有几个问题,请BANQ大哥和各位同仁一同指教。

1. CQRS储存事件,那么事件的结构能否举个具体数据结构的例子呢?

2. 快照具体是个什么样呢?还只是一个事件的数据结构?快照点 === 储存的事件?

3. 怎么通过eventsource和快照得到当前的领域对象的状态?


2012-07-18 11:36 "@brighthas"的内容
快照点 === 储存的事件 ...

应该是快照点。用快照事件触发你的代码也就得到了状态,故EventSourcing也适合调试,模拟现场复杂操作。


2012-07-18 15:10 "@banq"的内容
应该是快照点。用快照事件触发你的代码也就得到了状态,故EventSourcing也适合调试,模拟现场复杂操作。 ...

我的理解是: 快照是对领域对象的状态的快照。

比如对象 A

在 version 0.1 这个快照版本时 A.num == 32.

event n

event n+1

在 version 0.2 快照 A.num == 36 了

而 version 0.2 快照可以通过得到 v0.1 快照 然后调用之后的 events 得到 version 0.2 版本的对象状态。

而,如果 v0.2 之后还有 event, 而还没快照,那么可以通过 v0.2 快照 然后调用 之后event得到实际当前最新的对象状态。



[该贴被brighthas于2012-07-18 18:20修改过]