CQRS では、コマンド ハンドラーが書き込みストアと読み取りストアをトランザクション的に更新していることをどのように確認しますか?
この 2 つのステップがトランザクションとしてサポートされているかどうかわかりません。それとも、ここで結果整合性に依存しますか? 最終的に読み取りストアが更新されることを意味しますか?
NServiceBus 5または6を使用してこれを行う(または)一般的な方法は何ですか?
私たちのアプリケーションではIRepository<T>
、コマンド側で Sql Server データベースを更新するための (追加、更新) があります。クエリ側は単純です。Entity Framework 上のデータベースとファサードDbContext
。
コマンド側の手順は次のとおりです。
- MVC コントローラーが View からデータを受け取る
- コントローラー アクションはコマンド/メッセージ オブジェクトを作成し、それをバスに送信します。
- 適切なコマンド ハンドラーは、適切なドメイン オブジェクトを作成し、それに対して検証を行います。
- 有効な場合、IRepository を使用してデータベースを挿入または更新します。
- それで?
これは、ステップ 1 と 2 がコマンド ストアと読み取りストアを更新する NServiceBus の Saga である必要がありますか?
ありがとうございました。