イベント駆動アーキテクチャ
Event Driven Architecture
システム間で出来事が起きた時に、それに反応して処理を動かす設計のこと。
簡単に説明すると
イベント駆動アーキテクチャっていうのは、システム間で何かの変化が起きた時に、それを合図にして処理を動かす設計のことだよ。 サービス同士が直接命令し合うのではなく、発生した出来事をきっかけにそれぞれのサービスが独立して反応するのが特徴なんだ。 ネット通販の注文確認メール送信や、SNSの通知システムなどで利用されることもあるよ。
名前のヒミツ
Eventは出来事、Drivenは〜に動かされた、Architectureは構造という意味の3つの英単語を組み合わせた名前だよ。 システム同士で何かの変化という出来事が起きたことをきっかけに、次の処理が動かされる構造を表しているんだね。
くわしく見てみよう!
イベント駆動アーキテクチャとは、システム間で「注文が確定した」「ファイルがアップロードされた」といった出来事(イベント)が発生した時に、それをきっかけに必要な処理を動かす設計方法のことだよ。
出来事を発生させるサービスと、それを受け取って処理するサービスの間に仲介役(イベントブローカーなど)を挟むことで、サービス同士が直接命令し合わずにやり取りできるようにするのが特徴なんだ。
この仕組みでは、出来事を発生させる側と受け取る側がお互いに直接依存しないため、どこか1つのサービスでエラーが起きてもシステム全体が停止しにくく、変化に強い構成を作れるんだ。
また、採用するイベント基盤によっては出来事を蓄積しておき、後からまとめて非同期に処理することもできるため、大量のアクセスが発生する場面にも柔軟に対応できるよ。
例えば、ECサイトで「注文が確定した」という出来事が発行されると、それを合図に決済処理や配送手配、通知サービスなどがそれぞれ独立して動き出すような構成で広く使われているよ。