イベントバス
コンポーネントがイベントを発行し、別のコンポーネントがそれを購読する中央の仲介役。互いの存在を知らなくてよい。単一プロセス内のpub-subである。
KafkaやRabbitMQのようなメッセージブローカーとは違い、イベントバスは通常プロセス内かクラスタ内にとどまり、ネットワークをまたがない。実装はコールバックのリストやオブザーバーパターンで行う。多くのフレームワークが独自のものを持っている。Node.jsのEventEmitter、SpringのApplicationEvents、Tkのイベント、Vuex/Piniaのミューテーションなどだ。
リスクは、ドメインの不明確なイベントが「魔法の結合」を生み、あらゆるものがあらゆるものと話し始めることだ。境界づけられたコンテキスト単位に範囲を絞り、どんなイベントがあるかを文書化しておくのがよい。対抗馬は直接のメソッド呼び出し(結合は強くなる)やサガ・オーケストレーションである。