10

http://cre8ivethought.com/blog/2009/11/12/cqrs--la-greg-youngによると、イベントパブリッシャーを使用したイベントの公開を担当するコンポーネントはリポジトリです。

私の質問は単純です:それはなぜですか?

このブログ投稿では、次のように伝えられています。

ドメインリポジトリはイベントの公開を担当します。これは通常、イベントストアにイベントを保存するとともに単一のトランザクション内にあります。

これはイベントストアのタスクとして期待していました。イベント(または複数のイベント)が保存されると、公開されます。

では、なぜそれがリポジトリにあるのでしょうか?

4

2 に答える 2

9

ドメインモデルは保存メカニズムを認識していません。一方、イベントストア、従来のSQLストア、またはその他の永続化手段を使用するかどうかに関係なく、適切なイベントが公開されることを確認する必要があります。

イベントの公開をイベントストアに依存している場合は、ストレージメカニズムと緊密に結合されます。

于 2012-10-01T17:59:32.980 に答える
2

両方のアクションのいずれかが失敗した場合、このイベントのリスナーはイベントのプロデューサーと同期しなくなるため、イベントの保存と公開は不可分な指示である必要があります。

イベントストアからイベントを公開するのと比較して、別の(より高価な)ソリューションがあります。これは、2pcトランザクション(2フェーズコミット)を使用することです。

ここでさらに興味深い情報を見つけることができます:https ://cqrs.wordpress.com/documents/building-event-storage/

于 2015-04-14T13:55:12.237 に答える