http://cre8ivethought.com/blog/2009/11/12/cqrs--la-greg-youngによると、イベントパブリッシャを使用してイベントを発行するコンポーネントはリポジトリです。CQRSリポジトリがイベントストアではなくイベントを公開するのはなぜですか?
私の質問は単純です:それはなぜですか?このブログ記事で
は私たちがいることを告げていますドメインリポジトリは、イベントを公開する責任があり、これは通常、イベント・ストアにイベントを保存するとともに、単一のトランザクション内だろう。
イベントストアのタスクとしてこれを期待していました。イベント(または複数のイベント)が保存されると、そのイベントは公開されます。
なぜそれがリポジトリにありますか?
を、あなたが述べたように、これらのイベントの発行はshouldn基礎となるイベントストアの責任を負うのではなく、「公開されていない」マーカーを設定している間にDBテーブルを使用してイベントを格納するという解決策です。別のプロセスに、そのテーブルから「公開されていない」とマークされたイベントを読み取り、それらのイベントを発行してから、マーカーが設定され、トランザクションがコミットされますか?この場合、未公開イベントのテーブルをポーリングしてこれを達成する方法ですか? – CraigM