# サーバーレスワークフロー
## 定義
サーバーレスワークフロー(Function Workflow / Function Orchestration)は、複数のイベントと Function を組み合わせて複雑な処理フローを実現するオーケストレーションパターンである(Source: [[@2018__CNCF WG Serverless__Serverless Overview Whitepaper v1.0]])。単一の Function では処理しきれないビジネスシナリオを、Function の逐次・並列実行と条件分岐で構成する。
## ワークフロー構成パターン
CNCF 白書が定義する 5 種の構成パターン:
1. **単純トリガー**: 単一イベント → 単一 Function
2. **複合条件トリガー**: 複数イベントの AND/OR 条件 → 単一 Function
3. **ファンアウト**: 単一イベント → 複数 Function(並列・逐次)
4. **連鎖**: Function の出力 → 後続 Function をトリガー
5. **インターリーブ**: マルチイベント × マルチ Function の複合フロー
## ワークフロー状態
| 状態 | 役割 |
|---|---|
| Event State | イベント待機 |
| Operation/Task State | Function 実行 |
| Switch/Choice State | 条件分岐 |
| Pass State | データ注入 |
| Delay/Wait State | 時間制御 |
| End/Stop State | 終了 |
## イベント-Function マッピング
**n:m マッピング**: 複数のイベントソースが 1 つの Function をトリガーでき、1 つの Function が複数のイベントソースからトリガーされうる。イベントソースには Message サービス(RabbitMQ, MQTT, SNS)・Storage サービス(S3, DynamoDB, Kinesis)・HTTP ゲートウェイ・スケジュールイベントなどが含まれる。
## ワークフローツールの提供機能
- イベント-Function 相互作用の視覚的仕様
- ステートマシン定義(AWS Step Functions 等)
- 実行中インスタンスの可視性
- 過去の実行データ
- 障害回復機構
## 横断的知見
- **LLM エージェントのワークフローは Control Flow Graph(CFG)として、CNCF の Function Workflow パターンと同型の構造を持つ**: CNCF 白書(2018)は「連鎖」(Function の出力が後続 Function をトリガー)と「ファンアウト」(単一イベント→複数 Function の並列・逐次実行)をワークフロー構成パターンとして定義した。[[@2026__Unknown__Agentic Workflows are Serverless Applications, so deploy them that way!]] が実測した3つのエージェントアーキタイプはこれと直接対応する: Static RAG Agent(Web Search→URL Fetch→LexRank Summarize→LLM Inference という単純な「連鎖」)、Mini SWE Agent(LLM Inference→Execute Bash→LLM Inference という「連鎖」のループ)、GPT-Researcher(Planning Agent から複数 Researcher Agent への「ファンアウト」といったん Writer Agent へ収束する scatter-gather 構造)。ただし CNCF のイベント-Function マッピングが外部イベントソース(Message・Storage・HTTP 等)由来であるのに対し、エージェントワークフローの「イベント」は前段 LLM 推論やツール実行の出力そのものであり、ワークフローの分岐・終了条件(Mini SWE Agent の "Done?" 判定等)がプログラム外部ではなく LLM の出力内容に依存する点で非決定的である。(Source: [[@2026__Unknown__Agentic Workflows are Serverless Applications, so deploy them that way!]] §2.4, §3)
- **エージェントワークフローは DAG ではなく循環的(cyclic)であるため、著者は用語をあえて CFG と呼び分けた**: CNCF のワークフロー状態機械(Event/Operation/Switch/Pass/Delay/End State)は基本的に有向非巡回(DAG)を前提にステートマシンとして記述されるが、Mini SWE Agent のような ReAct スタイルのエージェントは「Done? まで Execute Bash → LLM Inference を繰り返す」という明示的なループを持つ。[[@2026__Unknown__Agentic Workflows are Serverless Applications, so deploy them that way!]] は脚注で「ワークフローは文献では一般に DAG と呼ばれるが、多くのエージェントワークフローは循環的であるため、用語の明確化のためあえて Control Flow Graph(CFG)を採用した」と明記しており、これは Function Workflow の記述モデルがエージェント領域では単純な DAG から一段複雑な循環グラフへ拡張される必要があることを示す。(Source: [[@2026__Unknown__Agentic Workflows are Serverless Applications, so deploy them that way!]] §2.4 脚注1)
## 未解決の問い
- AWS Step Functions に代表されるステートマシン型と、Temporal・Azure Durable Functions のような永続ワークフローエンジンの実用的な使い分け基準は何か?
- LLM エージェントの「ツール呼び出し連鎖」は Function Workflow パターンの n:m マッピングとどのように対応するか?→ 一定程度回答: CFG としての構造対応は [[@2026__Unknown__Agentic Workflows are Serverless Applications, so deploy them that way!]] が示したが、エージェント特有の非決定的な分岐条件(LLM 出力依存)・循環構造をサーバーレスワークフローエンジン(Step Functions・Temporal 等)がどう表現・実行するかは未検証。同論文が提案する「ワークフローグラフフレームワーク」(§4.3)は既存の Function Workflow エンジンとは別の新規プログラミングモデルとして構想されており、両者の関係は明示されていない。
- サーバーレスワークフローのデバッグ・オブザーバビリティは 2018 年以降どこまで成熟したか?(CNCF 白書は 2018 時点で「成熟度不足」と指摘した)
- エージェントワークフローの CFG をサーバーレスの Control Plane に登録する際、既存のワークフロー状態機械(Event/Operation/Switch/Pass/Delay/End State)にどのような新しい状態が必要になるか(例: 「LLM 推論待ち」「ツールサンドボックス起動待ち」等)。(Source: [[@2026__Unknown__Agentic Workflows are Serverless Applications, so deploy them that way!]])
## 関連
- 上位概念: [[サーバーレスアーキテクチャ]] / [[マイクロサービスアーキテクチャ]] / [[ワークフロー自動化]]
- Source: [[@2018__CNCF WG Serverless__Serverless Overview Whitepaper v1.0]](§ Function Workflows)/ [[@2026__Unknown__Agentic Workflows are Serverless Applications, so deploy them that way!]]
## 出典
- [[@2018__CNCF WG Serverless__Serverless Overview Whitepaper v1.0]](§ Function Workflows)
- [[@2026__Unknown__Agentic Workflows are Serverless Applications, so deploy them that way!]](§2.4 CFG モデル化・§3 3アーキタイプの実測・§4.3 ワークフローグラフフレームワーク提案)