イベントドリブンとイベントソーシングの違いは何ですか?


13

私はドメイン駆動設計(DDD)を研究していて、用語ドリブンとイベントソーシングという用語に出会いました。私はそれがプロデューサーからコンシューマーへのイベントの発行に関するものであることを知っており、ログを保存するので、私の質問は次のとおりです。

イベントドリブンとイベントソーシングの違いは何ですか?

回答:


15

イベント駆動型アーキテクチャという用語は、主にまたは排他的にイベントを介して通信するコンポーネントに基づくあらゆる種類のソフトウェアシステムに使用されます。たとえば、一般的なプラットフォームのほとんどすべての主要なGUIフレームワークは、イベント駆動型のメカニズムを使用しています。「イベント」という用語は通常、この文脈では「通知」を意味します。

イベントソースは、アプリケーションの状態全体がイベントのシーケンスとして格納されるシステムを指す、はるかに特殊な用語です。よく知られている人気のあるクラスの例は、トランザクションログに状態の変更を保存するトランザクションデータベースシステムです。ここで、「イベント」とは、「通知」だけでなく、「状態変化」を指す。

そのため、「イベントソーシング」をコアメカニクスとして使用するシステムは、偶数駆動システムと見なすこともできますが、一般的にその逆は当てはまりません。


あなたの答えに賛成しました。私はこれを今自分で調べています。最初にあなたの答えに出会いました。「アプリケーションの状態全体がシーケンスイベントとして保存されます」というフレーズを見ると、「アプリケーションの状態は現在の形式で直接永続化されていません。代わりに、作成、更新、または削除の各操作が実行されていますオブジェクトまたはモデルの「イベント」と見なされ、直接永続化されるのは「イベント」です。したがって、オブジェクトの現在の状態を取得するには、それらのイベントを再生して、オブジェクトのコピーを再構築する必要があります。」この音は正しいですか?
Panzercrisis

1
@Panzercrisis:「イベントソーシングは、アプリケーションの状態に対するすべての変更を一連のイベントとして保存します。」(ファウラーのように)。通常、すべてのオブジェクトには「現在の」状態があります。この状態は、イベントシーケンス自体だけでなく、永続化される場合もあります(遅延される場合があります)。詳細については、Fowlerの記事を読むことをお勧めします。
Doc Brown
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.