メインコンテンツまでスキップ

リアクティブ・イベント駆動構造系

✅ 概要

この系統は、イベントやメッセージの流れを中心に、非同期で反応する構造 を扱うスタイル群を対象とする。

  • 入力に応じて「いつ・どのように」反応するかを設計の主対象にする
  • スレッド・コールバック・イベントループ・メッセージキューなどを前提とした構造
  • 並行処理・高スループット・リアクティブシステムで重要

代表的なスタイル:

✅ なぜこの系統が生まれたか(歴史・背景)

  • CPU コア数の増加に伴う並行・並列性の重要性
  • Web / モバイル / IoT による接続数・イベント数の爆発的増加
  • ブロッキングな I/O モデルではスケールが難しくなった
  • 高い応答性(レスポンス)と耐障害性が求められるようになった

「スレッドを直接管理するのではなく、
イベントやメッセージの流れとして並行性を扱いたい」

というニーズから、Reactive / Event-driven 系のスタイルが発展してきた。

✅ 解決しようとした問題

  • 低レベルなスレッド管理(ロック/ミューテックス地獄)
  • 同期 I/O によるスループット限界
  • 異常時の復旧・フォールトトレランス設計の難しさ

Reactive 系は、

  • 「イベント(メッセージ)の流れ」
  • 「非同期処理の組み合わせ」
  • 「リアクティブな応答性」

といった観点から、システム全体の設計を考える。

✅ この系統に属するスタイル

  • Actor Model:アクター同士がメッセージでやり取りする並行モデル
  • Event Loop ベース構造:1 本のイベントループで非同期 I/O をさばく構造(Node.js など)
  • Reactive Streams:非同期ストリームの処理・バックプレッシャーまで含めて標準化したモデル

✅ 他の系統との関係

✅ どんな時に参考になるか

  • 高スループット・低レイテンシを求められるサービス
  • 多数のクライアントや接続を扱うサーバ(チャット/ゲーム/IoT 等)
  • イベントドリブンなビジネスロジックを持つシステム

この系統を理解することで、
「何がいつ起き、それにどう反応するか」という軸でアーキテクチャを捉える視点 が得られる。