前置き
イベントソーシング(ES)の設計思想は、データメッシュアーキテクチャ、特にその中核原則である「データ・アズ・ア・プロダクト(Data as a Product)」を実現するための、最も強力な「エンジン」の一つとして機能します。
両者はたしかに別々の概念ですが、組み合わせることで互いの価値を最大化する、理想的なパートナー関係にあります。
📰 アナロジー:報道機関とニュース配信
この2つの関係は、報道機関の内部と外部への情報発信に例えられます。
イベントソーシング:報道機関の「取材ノート(内部原簿)」
これは、報道機関(ドメイン)が内部で使う、唯一の真実の源泉です。
記者は、事件発生、容疑者逮捕、裁判開始といった「出来事(イベント)」を、時系列で、
変更不可能な事実として記録し続けます。
そして、現在の状況は、このノートを最初から読み返すことで常に把握できます。
データメッシュ:各報道機関が配信する「公式ニュースフィード(データプロダクト)」
これは、報道機関が 外部の購読者(他のドメイン) に対して公式に提供する「商品」です。
データメッシュの設計思想は、「各報道機関は、自分たちの専門分野のニュースフィードを、責任を持って提供しなさい」と定めます。
この2つの関係
報道機関(ドメイン)が取材ノート(イベントソーシング)で記録した「出来事」は、そのまま「公式ニュースフィード(データプロダクト)」として外部に配信するのに最も理想的なデータです。
イベントソーシングがデータメッシュをどう実現するか
では、データメッシュの思想を、イベントソーシングがどのように技術的に実現するかを解説します。
1. 「データ・アズ・ア・プロダクト」の理想的な実装
データメッシュでは、各ドメイン(例:注文ドメイン)は、自らのデータを「プロダクト」として提供する責任を持ちます。
ESの役割
注文ドメインがイベントソーシングで設計されている場合、
注文が作成された、注文が発送された、注文がキャンセルされた といったドメインイベントのストリームが生成されます。
データプロダクト化
このイベントストリームこそが、注文ドメインが外部に提供する、最も価値があり、信頼できるデータプロダクト(のアウトプット・ポート) となります。
2. 真の「疎結合」の実現
データメッシュは、中央のデータレイクを廃し、ドメイン間の直接的な連携(自律駆動型連携)を求めます。
イベントソーシングの役割
イベントソーシングは、データベースのテーブルを直接共有するという、最悪の密結合を回避します。
仕組み
配送ドメインは、注文ドメインのデータベース構造を知る必要は一切ありません。
彼らが必要なのは、
「注文が発送可能になった」というイベント(事実)
だけです。
このイベントをサブスクライブ(購読)するだけでよいため、注文ドメインが内部のデータベースをどう変更しようと、配送ドメインは一切影響を受けません。
3. 高い信頼性と監査可能性
データプロダクトは「信頼できる(Trustworthy)」必要があります。
イベントソーシングの役割
イベントソーシングのイベントログは 不変(イミュータブル) です。
一度記録された事実は、変更も削除もされません。
効果
これは、完璧な監査証跡(Audit Trail) として機能します。
「この注文が、いつ、誰によって、どのように変更されたか」という履歴が完全に残るため、データプロダクトの信頼性が根本から保証されます。
結論
データメッシュが「何を(What)すべきか」——すなわち
「ドメインごとにデータをプロダクトとして分散・所有せよ」——という戦略
を定義するのに対し、
イベントソーシングは「どのように(How)それを実現するか」——すなわち
「内部状態をイベントとして記録し、そのストリームをプロダクトとして配信する」——という、極めて強力な戦術(実装パターン)
を提供するのです。