リアクティブ・イベント駆動構造系
✅ 概要
この系統は、イベントやメッセージの流れを中心に、非同期で反応する構造 を扱うスタイル群を対象とする。
- 入力に応じて「いつ・どのように」反応するかを設計の主対象にする
- スレッド・コールバック・イベントループ・メッセージキューなどを前提とした構造
- 並行処理・高スループット・リアクティブシステムで重要
代表的なスタイル:
✅ なぜこの系統が生まれたか(歴史・背景)
- CPU コア数の増加に伴う並行・並列性の重要性
- Web / モバイル / IoT による接続数・イベント数の爆発的増加
- ブロッキングな I/O モデルではスケールが難しくなった
- 高い応答性(レスポンス)と耐障害性が求められるようになった
「スレッドを直接管理するのではなく、
イベントやメッセージの流れとして並行性を扱いたい」
というニーズから、Reactive / Event-driven 系のスタイルが発展してきた。
✅ 解決しようとした問題
- 低レベルなスレッド管理(ロック/ミューテックス地獄)
- 同期 I/O によるスループット限界
- 異常時の復旧・フォールトトレランス設計の難しさ
Reactive 系は、
- 「イベント(メッセージ)の流れ」
- 「非同期処理の組み合わせ」
- 「リアクティブな応答性」
といった観点から、システム全体の設計を考える。
✅ この系統に属するスタイル
- Actor Model:アクター同士がメッセージでやり取りする並行モデル
- Event Loop ベース構造:1 本のイベントループで非同期 I/O をさばく構造(Node.js など)
- Reactive Streams:非同期ストリームの処理・バックプレッシャーまで含めて標準化したモデル
✅ 他の系統との関係
- Flow / Pipeline 系 と組み合わせて、イベントストリームの処理フローを構成する
- Integration Styles(EDA, メッセージング) と密接に関連
- Layered / Domain Model 系 の内部実装としてこれらを採用することも多い
✅ どんな時に参考になるか
- 高スループット・低レイテンシを求められるサービス
- 多数のクライアントや接続を扱うサーバ(チャット/ゲーム/IoT 等)
- イベントドリブンなビジネスロジックを持つシステム
この系統を理解することで、
「何がいつ起き、それにどう反応するか」という軸でアーキテクチャを捉える視点 が得られる。