3

JOliversの「EventStore」を見ると、1つのイベントのみをコミットした場合、StreamRevisionとCommitSequenceは同じであることがわかります。そして、でイベントを選択するために使用されるのはStreamRevisionです。

最初に1つのイベントをコミットするアグリゲートを作成したとします。その後、SQLデータベーステーブルを次のように表示する10個のイベントをコミットしました(簡略化)。

Revision    Items   Sequence
1           1       1   
11          10      2

これから派生する2つの質問があります:

  1. これはStreamRevisionとCommitSequence違いですか?

  2. ストアは、「minRevision」と「maxRevision」を受け取る「GetFrom」メソッドを公開します。上記のデータを使用して、minRevision=4およびmaxRevision=8を要求した場合、これはどのように機能しますか?代わりに「minSequence」と「maxSequence」にすべきではなかったのでしょうか。

ありがとう。

ヴェルナー

4

1 に答える 1

1

コミットは、重複を防ぎ、CouchDB や MongoDB などのトランザクション サポートを持たないストレージ エンジンによる楽観的同時実行を促進するためのストレージの概念です。一方、StreamRevision は、ストリームにコミットされたイベントの数を表します。

ストリームを操作していて、4-8 の最小/最大リビジョンで GetFrom() を呼び出す場合、(例によれば) v4 から v8 までのすべてのイベントが必要であることを意味し、これはコミット #2 によってカプセル化されます。

于 2011-10-06T11:11:16.547 に答える