7
おそらく、同じコマンドセットを適用することで状態を復活させることができます。イベントストア/ CQRSアーキテクチャでは、コマンドの代わりにイベントが格納されるのはなぜですか?
おそらく、同じコマンドセットを適用することで状態を復活させることができます。イベントストア/ CQRSアーキテクチャでは、コマンドの代わりにイベントが格納されるのはなぜですか?
イベントは、 "これは私たちのシステムで起こった"と伝えます。イベントは、コマンドが受け入れられて処理されたときに発生します。誰もそれが起こったという事実を拒否したり変更したりすることはできません。それはシステムの変更の唯一の権威あるソースです
コマンドは、システムの一部(UIなど)がシステム(「コマンドハンドラ」)に変更を加えることを担当するコンポーネントに伝える単なる手段ですそれは完了したい。ただし、コマンドハンドラは、さまざまな理由でコマンドを処理しないことを選択できます。 UIに古い情報が含まれている可能性があり、コマンドを処理しても意味がなくなったり、ユーザーがその操作を実行する権限を持っていない可能性があります。どちらの方法でも、コマンドは実際にはただの要求です&はシステムの状態に関係しません
。
ありがとう、それは非常に役に立ちます。 –
さらに、コマンドの再実行は破壊的(データに影響を及ぼす)になります。作業するコマンドを再実行するには、同じ初期状態にする必要があります。イベントは定義上、破壊的ではありません。 – Rich
私はパーティーに少し遅れていることは知っていますが、アプリケーションの状態を再現するイベントストアの全体的なポイントではありませんか?コマンド自体の要求はイベントではないのですか? – Fatmuemoo