発行と購読パターン
プロデューサとコンシューマが独立して存在し、互いを認識しない。
両者はイベントバスを介して間接的に通信する。
複数の独立したコンポーネントが同じ情報にアクセスする場合に向く。
要素
発行者。パブリッシャー、プロデューサとも。イベントを発行するコンポーネント。
発行するイベントを設計ドキュメントに記載するのは発行者の義務。
購読者。サブスクライバー、コンシューマとも。イベントを購読するコンポーネント。
イベントバス。コンポーネントの購読を登録したり、発行されたイベントの配信に責務を持つ。
イベントバスの性質がシステムの性質に大きな影響を与える。
規約
全ての通信がイベントバスを介して行われるため、全てのコンポーネント(発行者、購読者の両方)がバスに接続する必要がある。
強み
拡張性、再利用性、テスト容易性を促進する。
イベントバスの選択によっては、可用性、信頼性、スケーラビリティも向上する可能性がある。
弱み
全体を通したパフォーマンスの予測が困難。
イベントバスに依存して決定される要素が大きいため、選定は慎重に行う必要がある。