1

私はイベント ソーシング パターンを使用しようとしていますが、気になることが 1 つあります。

いくつかのイベント ハンドラーのソース コードを変更するとどうなるでしょうか。次にオブジェクトの状態を再構築する (イベントを再生する) ときに、完全に異なるオブジェクトを取得するか、さらに悪いことに、ハンドラーの 1 つで何らかの例外的な状態の原因が何も得られない可能性があります。ルールチェック。

イベント処理コードは不変でなければならないということですか? (一度書いたら、二度と触れません)。私は本当にこの考えが好きではありません。

長い調査と思考の後、イベントはメッセージであり、SOA などの他のメッセージと同様に、バージョン管理する必要があるという結論に達しました。

4

1 に答える 1

1

C# 4.0でのhttp://www.martinfowler.com/eaaDev/EventSourcing.htmlの実装について話し合っていると思います。

一般的に言えば、ライブラリの作成者として、パブリック メソッド、プロパティ、またはイベントを作成する場合は、それを変更しないことを消費者に約束します。

イベントが配信するオブジェクトのタイプに柔軟性を追加したい場合は、オブジェクト タイプの arg を送信し、処理時にリフレクションを使用して受け取ったものを決定し、適切にディスパッチします。

ルールのチェックと例外の伝播は、Calcelable イベントを介して処理するか、引数で例外をパッケージ化して送信するだけで処理できます。しかし、自問する必要があります。これらのことは、観測対象の状態にどのように影響するのでしょうか?

于 2012-04-08T14:25:33.960 に答える