# サーバーレスワークフロー ## 定義 サーバーレスワークフロー(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)