# サーバーレスワークフロー
## 定義
サーバーレスワークフロー(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 等)
- 実行中インスタンスの可視性
- 過去の実行データ
- 障害回復機構
## 横断的知見
(1 ソース目 ─ 未解決の問いを参照)
## 未解決の問い
- AWS Step Functions に代表されるステートマシン型と、Temporal・Azure Durable Functions のような永続ワークフローエンジンの実用的な使い分け基準は何か?
- LLM エージェントの「ツール呼び出し連鎖」は Function Workflow パターンの n:m マッピングとどのように対応するか?
- サーバーレスワークフローのデバッグ・オブザーバビリティは 2018 年以降どこまで成熟したか?(CNCF 白書は 2018 時点で「成熟度不足」と指摘した)
## 関連
- 上位概念: [[サーバーレスアーキテクチャ]] / [[マイクロサービスアーキテクチャ]] / [[ワークフロー自動化]]
- Source: [[@2018__CNCF WG Serverless__Serverless Overview Whitepaper v1.0]](§ Function Workflows)
## 出典
- [[@2018__CNCF WG Serverless__Serverless Overview Whitepaper v1.0]](§ Function Workflows)