JOlivier EventStore与StreamRevision和CommitSequence的区别和用法?

时间:2011-10-06 06:47:29

标签: cqrs

在查看JOlivers“EventStore”时,如果您只提交1个事件,我会看到StreamRevision和CommitSequence是相同的。而StreamRevision则用于选择事件。

假设我首先创建了一个聚合1个事件的聚合。在此之后发布了10个事件,这些事件将使我的SQL数据库表看起来像这样(简化):

Revision    Items   Sequence
1           1       1   
11          10      2

我有2个问题源于此:

  1. 这是 StreamRevision和CommitSequence之间的区别吗?

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

  3. 感谢。

    沃纳

1 个答案:

答案 0 :(得分:1)

提交是一种存储概念,用于防止重复并通过没有事务支持的存储引擎(如CouchDB和MongoDB)促进乐观并发。另一方面,StreamRevision表示提交给流的事件数。

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