14章イベント駆動アーキテクチャ

イベント駆動アーキテクチャは、高度にスケーラブルで高パフォーマンスなアプリケーションを実現するために用いられる分散非同期型のアーキテクチャスタイルだ。このアーキテクチャスタイルは適応性に優れており、小規模なアプリケーションにも大規模で複雑なアプリケーションにも用いることが可能だ。イベント駆動アーキテクチャは、非同期的にイベントを受信して処理する、分離されたイベント処理コンポーネントで構成される。このアーキテクチャスタイルは、単体のアーキテクチャスタイルとしても使用できるし、他のアーキテクチャスタイル(イベント駆動マイクロサービスアーキテクチャなど)に組み込む形でも使用できる。

ほとんどのアプリケーションは、イベントベースモデルではなく、リクエストベースモデル(図14-1参照)と呼ばれるモデルを採用している。このモデルでは、ある種のアクションを実行するためのシステムへのリクエストが、リクエストオーケストレーターへと送られる。リクエストオーケストレーターは一般的にはユーザーインターフェイスとなるが、API層やエンタープライズサービスバスとして実装することもできる。リクエストオーケストレーターの役割は、リクエストをさまざまなリクエストプロセッサーに一義的かつ同期的に導くことだ。リクエストプロセッサーは、データベースの情報を取得・更新して、リクエストを処理する。

リクエストベースモデル

図14-1 リクエストベースモデル

過去6か月間の注文履歴を取得したいという顧客からのリクエストは、リクエストベースモデルの良い例だ。注文履歴情報の取得は、特定のコンテキストにあるデータをシステムに要求する、データ駆動の一義的なリクエストだ。これはシステムが反応しなければならないイベントではない。 ...

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.