3

CQRS à la Greg Youngによると、イベント ハンドラー (およびダウンストリーム イベント デノーマライザー) は、イベント パブリッシャーによって以前にパブリッシュされた着信イベントに反応します。

ここで、実行時に新しいイベント デノーマライザーを追加したいとします。基本的にこれは簡単ですが、データを現在の状態に戻す必要があります。

これを行う最善の方法は何ですか?

イベント ストアに順不同のリクエストを送信し、以前に発行されたすべてのイベントを要求する必要がありますか?

または、これを行うより良い方法はありますか?

4

3 に答える 3

4

最後に見たイベントを思い出せるように、予測を作成することもできます。その後、スタートアップの際に、彼らはこのイベントとすべての転送を要求します。古いプロジェクションを再開して新しいプロジェクションを構築すると、ほぼ同じものになります。

于 2012-11-19T14:38:17.507 に答える
4

新しいハンドラーに対してすべての (必要な) イベントを取得して再生できます。基本的に必要なのは、永続化されたビュー モデルを適切な状態にすることであるため、これは別のプロセスで行うことができます。

プロダクションの例として、 Rinat Abdullin のLokad.CQRSサンプル プロジェクトをご覧ください。特に は、SaaS.Engine.StartupProjectionRebuilderかなり複雑ではありますが、興味深い情報源になる可能性があります。

于 2012-11-18T17:18:00.273 に答える
2

境界付きコンテキストの複雑な統合を採用する場合は、読み取りモデル全体を削除して再構築する必要がある場合があります。

于 2015-02-12T18:41:00.973 に答える