第5章 イベント駆動アーキテクチャ イベント駆動アーキテクチャーのパターン
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
イベント駆動アーキテクチャは、イベントに基づく生成、検出、消費、反応を促進するソフトウェア・アーキテクチャ・パラダイムである。イベント駆動型アーキテクチャにより、分散型でスケーラブルなクラウド・ネイティブ・アプリケーションを構築できる。ほとんどが同期的なサービス構成パターンとは対照的に、イベント駆動型アーキテクチャは非同期的である。イベント駆動型アーキテクチャは、クラウド・ネイティブ・アプリケーションを設計するためのクリーンで分離された方法を提供し、よりシンプルなスケーリングを可能にし、大規模な分散クラウド・ネイティブ・アプリケーションを構築するための基本的なアーキテクチャの1つである。
イベントは、情報を共有するために使用される。ほとんどの場合、イベント 通知を生成するアプリケーションはいかなるレスポンスも期待しない。イベント通知を生成するアプリケーショ ンがレスポンスを期待するとしても、それは間接的なものである。
注
イベントは、システム状態におけるあらゆる重要な発生や変化として分類することができる。ボブの口座に50ドル入金された例を見てみよう。このインシデントはイベントとみなされる。このイベントの発生は、他のシステム、例えばボブの携帯電話に通知として送ることができる。イベント通知は通常、非同期メッセージであり、イベント発生情報とともに生成され、送信される。イベントは発生するだけで、移動はしないが、イベントという用語は、イベントを通知するメッセージを示すためにも互換的に使用される。これは主に、イベント駆動通信アーキテクチャが、イベント発生を特定し、伝達するためにメッセージを使用する非同期メッセージング・インフラの上に構築されているためである。
例えば、Bob の現在のアドレスを更新するためにイベントを送る。この場合、イベントを送るアプリケーションは、コンシューマシステム がアクションを実行することを期待するので、イベントが配送されることを保証す るために中間システムを必要とする。必須ではないが、メッセージブローカーとイベントバスは、そのようなイベ ントを確実に配送するために使用できる。イベント配信保証については、次のセクションで詳しく述べる。
イベント駆動型のクラウド・ネイティブ・アプリケーションは、マイクロサービスや、Amazon LambdaやAzure Functionsのようなサーバーレス・コンピューティング・プラットフォームを使うことで実装できる。これらのプラットフォームは、ネイティブにイベントトリガーが可能だからだ。サーバーレスの利用は、イベントの発生頻度が低く、インフラコストを大幅に節約できる場合に特に有効だ。
この章では、個別のイベントを処理するクラウドネイティブのイベント駆動型アプリケーションを構築するためのパターンに焦点を当てる。ユースケースによっては、振る舞いや時間的特性を理解するために、一連のイベントを処理する必要がある。このような時間順に並んだ一連のイベントはストリームと呼ばれ、ストリームの処理は離散イベントの処理とは全く異なるため、第6章ではストリーム処理パターンを取り上げた。
この章では、イベント駆動アーキテクチャの基礎と、イベント配信、イベントベースの状態管理、イベントオーケストレーションに分類されるパターンを取り上げる。また、これらのパターンに関係するテクノロジーや、テスト、セキュリティの強化、DevOpsを利用した継続的デリバリの実現、モニタリングや可観測性を利用したアプリケーションの演算子についても見ていく。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access