【いべんとくどうあーきてくちゃ】
イベント駆動アーキテクチャ とは?
最終更新:
💡 出来事を知らせ、必要な処理が反応する
起きた出来事をイベントとして伝え、それを受け取る処理が反応するシステムの設計。発行側と受信側の直接の依存を減らせる一方、配送・順序・重複・失敗への対応も必要になる。
📌 このページのポイント
- 発行側がイベントを出し、受信側が処理する
- イベントの経路を介して、処理同士の直接の依存を減らす
- 発行できたことと、関連する処理がすべて完了したことは別
- 重複・順序・再試行・結果の整合性を設計する
出来事を知らせるって、どんな例?
例えば「注文を受け付けた」というイベントを発行し、通知や分析の処理が受け取って動く仕組みだよ。発行側が受信側を一つずつ直接呼び出す代わりに、イベントの経路を介して伝える。必要な処理を別々に追加しやすくなるんだ。
イベントを出せば、注文は全部完了?
発行と、受信側の仕事の完了は別だよ。注文の成立に在庫確保や決済が必要なら、その成功・失敗も扱う手順が必要になる。通知処理を切り離せても、業務全体の成功まで自動的に保証されるわけではないんだ。
失敗したイベントは、もう一度送ればいい?
再試行は大切だけれど、同じイベントが複数回届く場合を考えよう。受信側で重複して課金などをしないように設計し、順序が重要な処理は配送の保証も確認する。関連する処理を追えるIDやログ、失敗を調べる仕組みも役立つよ。
マイクロサービスなら、必ず使うもの?
📖 おまけ:英語の意味
「Event-Driven Architecture」 = イベント駆動型アーキテクチャ
💬 Event(出来事)にDriven(駆動される)Architecture(設計)。出来事が起きるたびに反応するよ