CQRS(および一般的にはDDD)に頭を悩ませようとすると、2つのイベントが異なるアグリゲートで発生する状況に遭遇しましたが、それらの順序にはドメインの意味があります。もしそうなら、それらは非常に接近して発生する可能性があるため、タイムスタンプ(私が見たサンプル実装で使用されている)はそれらを区別できません。つまり、順序にあいまいさがあるため、イベントストアにはドメインの「完全な」表現が含まれていません。イベントが発生した場所。
例として、ドメインはアグリゲートにCustomerCreatedEvent
適用されるを起動し、Customer
次にアグリゲートでCustomerAssignedToAgent
イベントを発生させることができAgent
ます。CustomerAssignedToAgent
イベントがの前に発生した場合は意味がありませんCustomerCreatedEvent
が、通常、これらの両方が1つの操作の結果として発生する可能性があり、タイムスタンプが実質的に同じになる可能性があります。
だから私は物事をひどくモデリングしているだけですか?さまざまな集合体にまたがる一連のイベントが重要になる状況が発生する可能性はありますか?または、イベントが発生した正確なシーケンスを識別できるように、イベントストアにグローバルシーケンス番号を保持する必要がありますか?