例:ビジネス ルールでは、注文が行われたときに顧客に確認メッセージ (電子メールなど) を送信する必要があると規定されています。
aNewOrderRegisteredEvent
がドメインからディスパッチされ、確認メッセージを送信するイベント リスナーによってピックアップされたとします。それが完了すると、他のイベント ハンドラーが例外をスローするか、他の何かがうまくいかず、作業単位がロールバックされます。ロールバックされたものについて、ユーザーに確認メッセージを送信しました。
作業単位がコミットされた後に何かをしたい場合、このような問題を解決する「cqrs」の方法は何ですか? もう 1 つの複雑な要因は、イベントの再生です。新しいビュー/プロジェクションを構築するために記録されたイベントを再生するたびに、古い確認メッセージが再送信されないようにします。
これまでの私の最高の理論: 私は魅力的な cqrs の世界を調べ始めたばかりで、これがサガとして実装されるものかどうか疑問に思っていましたか? サガが、各遷移が 1 回しか発生しないステート マシンのようなものである場合、この問題は解決すると思いますか? これがコマンドバスとドメインイベントとどのように適合するかを視覚化するのに苦労しています..