処理フロー・パイプライン構造系
✅ 概要
この系統は、アプリケーション内部の処理を 一連のステップ(パイプライン)としてどのように構成するか を扱うスタイル群を対象とする。
- データやメッセージが「段階を追って」処理されていく
- 各ステージ(フィルタ)は単一責務で構成され、組み合わせで機能を実現する
- バッチ処理やストリーミング処理など、データフロー中心のアーキテクチャで重要
代表的なスタイル:
✅ なぜこの系統が生まれたか(歴史・背景)
- Unix 文化の「小さなプログラムをパイプ(
|)でつなぐ」発想 - ETL(Extract-Transform-Load)処理など、データ加工の分野でのニーズ
- ログ処理、イベント処理、ストリーミング分析などの増加
「1 つの巨大な処理ではなく、シンプルな処理を組み合わせて複雑さを扱いたい」
というニーズから、Flow / Pipeline 系のスタイルが生まれてきた。
✅ 解決しようとした問題
- 巨大な一枚岩の処理関数(複雑な if/for の塊)
- バッチ処理・ETL がスパゲッティ化して再利用不能
- 処理の一部だけ差し替えたり並列化したりするのが難しい
Flow / Pipeline 系は、処理を
- 分割し
- 並べ
- 組み替え可能にし
「処理フローを設計対象として扱う」 ことを狙う。
✅ この系統に属するスタイル
- Pipe & Filter:フィルタ(処理ステージ)とパイプ(データの流れ)で処理をつなぐ古典的スタイル
- Batch Pipeline:バッチ処理としてのパイプライン構造(ETL ジョブ、バッチワークフロー等)
- Streaming Pipeline:ストリーミングデータを継続的に処理するパイプライン
✅ 他の系統との関係
- Data Architecture(Lambda / Kappa / Data Pipeline)と非常に相性が良い
- Integration Styles(メッセージング/EDA)と組み合わせて、分散パイプラインを構成することが多い
- Reactive / Actor 系 とも親和性が高く、イベントストリーム処理の内部構造として利用される
✅ どんな時に参考になるか
- バッチ処理・ETL・ログ処理・ストリーミング分析など、データフロー中心のシステム
- 「段階を追って変換される」処理を整理したいとき
- 処理ステージごとの責務分担・再利用・並列実行などを考えたいとき
この系統を押さえておくと、 「処理フローそのものをアーキテクチャとして設計する」 観点が得られる。