15章
イベント駆動型アーキテクチャ
マイクロサービスと同じように、イベント駆動型アーキテクチャ(Event Driven Architecture)は、現在の分散システムで広く使われています。分散システムを疎結合に保ち、拡張性と耐障害性を向上するための有力な技術方式として、イベント駆動型アーキテクチャを推奨する人がたくさんいます。
イベント駆動型アーキテクチャは、たいていの場合、ドメイン駆動設計と関係します。結局のところ、イベント駆動型アーキテクチャは、名前のとおり、イベントにもとづく技術方式です。そしてドメイン駆動設計でも、イベントは重要な構成要素です。事業活動を業務イベントで表現し、もし必要であれば、イベント履歴を「真実を語る唯一の情報源」として扱います。イベント駆動型アーキテクチャでシステムを構築するために、ドメイン駆動設計の業務イベントを活用したくなるかもしれません。しかし、これはよいアイデアでしょうか?
イベントを秘伝のスパイスとして既存システムに振りかければ、既存システムが疎結合な分散型システムに変身するわけではありません。まったく逆です。つまり、イベント駆動型アーキテクチャを安易に取り入れると、「モジュラーモノリス」(モジュール化された巨大な一枚岩)を「分散した大きな泥団子」に変えてしまうかもしれません。
この章では、イベント駆動型アーキテクチャとドメイン駆動設計の関係を検討します。イベント駆動型アーキテクチャの基本的な構成要素、この方式で失敗する典型的な状況、そして、効果的な非同期式の連係を設計するために、どのようにドメイン駆動設計の手法を活用できるかを学びます。
15.1 イベント駆動型アーキテクチャとは?
簡単に言えば、イベント駆動型アーキテクチャとは、システムのコンポーネント間で、イベントメッセージを非同期でやりとりする技術方式です( ...
Get ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.