2011-10-06 26 views
3

当查看JOlivers“EventStore”时,如果您只提交1个事件,则会发现StreamRevision和CommitSequence是相同的。 StreamRevision是用来选择事件的。JOlivier EventStore StreamRevision和CommitSequence的区别和用法?

假设我第一次创建了一个合成了1个事件的聚集。而在这之后comitted 10个事件,将让我的SQL数据库表如下所示(简化):

Revision Items Sequence 
1   1  1 
11   10  2 

我有2个问题,即源于此:

  1. 这是之间的差异StreamRevision和CommitSequence?

  2. 商店公开一个采用“minRevision”和“maxRevision”的“GetFrom”方法。使用上面的数据,如果我要求minRevision = 4和maxRevision = 8,这是如何工作的?它不应该是“minSequence”和“maxSequence”吗?

谢谢。

沃纳

回答

1

承诺是存储的概念,以防止重复和存储引擎不具备的事务支持,例如CouchDB的和MongoDB便于乐观并发。另一方面,StreamRevision表示承诺给该流的事件的数量。

当您使用流并且调用GetFrom()时,最小/最大修订版为4-8,这意味着您希望(根据您的示例)从v4到v8开始的所有事件#2。