はじめに
Azureクラウドアプリケーションアーキテクチャガイドより、7つあるアーキテクチャスタイルの一つ、イベントドリブンアーキテクチャに関してまとめます。
概要
情報の送り手が「イベント」を発行し、それを保持する箇所を設け、情報の受け手はそこにイベントを取りに行く、というアーキテクチャスタイルです。Webキューワーカーアーキテクチャと似ていますが、以下のようなイメージで違いを理解しています。
・キューの格納先 = パイプ
・処理したい命令を流しつつ保持しておける
・パイプの形状変更は一苦労
・配信者や受信者を変更/追加する場合には、配信側のコードをいじる必要あり
・イベントの格納先 = 箱
・処理のためのトリガーを放り込める
・複雑なものが入ってても大丈夫そう (パイプだと詰まりそう)
・受信者は能動的に箱の中身を取りに行く必要あり
・何人で箱を共有してもOKで、拡張性が高い
要件に応じて、パブリッシュサブスクライブモデルとイベントストリームモデル、2種類のモデルが使用可能です。
それぞれ、ざっくりとした構成を図示します。
適するアプリケーション
このアーキテクチャスタイルには以下のようなアプリケーションに適しています。
・複数のサブシステムが同じイベントを処理
・最小のタイムラグのリアルタイム処理
・パターンマッチングや特定の時間範囲内の集計など、複雑なイベント処理
・IoTなど、大量の高速データを処理
利点
・送り手と受け手を分離できる
・Point to Pointがないので、新しい受け手を容易にシステムへ追加できる
・受け手はイベントが到着すると即座に応答できる
・高い拡張性と分散性
課題
・配信の保証
・イベントを正しい順序で処理する必要がある場合
対応するAzureサービス
コンシューマー側の処理方式は、以下3種に大別されます。要件に応じて使い分けます。
組み合わせる各サービスの概要とアイコンは以下の通り。
まとめ
イベントドリブンアーキテクチャの特徴と使用されるサービスについて見ていきました。次回はビッグデータアーキテクチャスタイルについてまとめます。お楽しみに!
参考リンク
Azureアーキテクチャセンター イベントドリブンアーキテクチャ
Azureクラウドアプリケーションアーキテクチャガイド ダウンロードページ