Slide 1

Slide 1 text

©Fusic Co., Ltd. CONFIDENTIAL 1 AWS Lambda Durable Functionsの ユースケースを探る 2026.01.16 清家史郎 @seike460 Serverless Meetup Fukuoka #6

Slide 2

Slide 2 text

©Fusic Co., Ltd. 2 自己紹介 はじめに AWS Community Builder Serverless 2025 Japan AWS Top Engineers AWS User Group Leaders -コミュニティ - JAWS-UG Fukuoka - Fukuoka.go - Serverless Meetup Fukuoka - Cloudflare Meetup Fukuoka - JP_Stripes Fukuoka - JBUG Fukuoka - JDDUG Fukuoka 清家 史郎 (@seike460) SHIRO SEIKE 株式会社Fusic プリンシパルエンジニア/エバンジェリスト

Slide 3

Slide 3 text

©Fusic Co., Ltd. Serverless のタイムアウト問題 どのクラウドでもタイムアウト制限がある 処理 所要時間 各クラウドの制限 通常のAPI処理 数秒〜数分 余裕 バッチ処理 数分〜15分 Lambda 15分 / GCF 60分 上長の承認待ち 数時間〜数日 全クラウドで無理

Slide 4

Slide 4 text

©Fusic Co., Ltd. 従来の解決策と課題 「承認を待つ」アーキテクチャは、複雑少し複雑になってしまう 手法 メリット 痛み キュー + Functions 疎結合 状態管理コード爆発 ワークフローサービス 可視化◎ DSL学習、動的分岐が苦手 DB + ポーリング 柔軟 自前実装のバグ地獄

Slide 5

Slide 5 text

©Fusic Co., Ltd. AWS Lambda Durable Functions とは ● 最大 1年間 の一時停止、Wait中のコスト ゼロ ● コードファースト (async/await) クラウド サービス リリース Azure Durable Functions 2017年 AWS Lambda Durable 2025年12月

Slide 6

Slide 6 text

©Fusic Co., Ltd. AWS Lambda Durable Functions の威力 たった1行で数日待てる ● 関数は一時停止(課金ゼロ) ● 外部からCallbackが来ると再開 ● 状態は自動でチェックポイント保存

Slide 7

Slide 7 text

©Fusic Co., Ltd. 稟議ワークフローデモ フロー: 1. 社員が出張申請を作成 2. システムが上長に通知 3. 上長が承認/却下(数時間〜数日待ち ) 4. 結果に応じた処理を実行 技術スタック : ● AWS Lambda Durable (TypeScript) ● Express + React

Slide 8

Slide 8 text

©Fusic Co., Ltd. Lambda側: 全体構造 ポイント: withDurableExecution でラップ

Slide 9

Slide 9 text

©Fusic Co., Ltd. Lambda側: コンテンツ生成 context.step で処理を定義 → 結果がチェックポイント保存

Slide 10

Slide 10 text

©Fusic Co., Ltd. Lambda側: Callback作成

Slide 11

Slide 11 text

©Fusic Co., Ltd. Lambda側: 結果処理

Slide 12

Slide 12 text

©Fusic Co., Ltd. Express側: Lambda呼び出し ポイント: InvocationType: 'Event' で非同期、バージョン指定必須

Slide 13

Slide 13 text

©Fusic Co., Ltd. Express側: Callback ID取得 CloudWatch Logsをポーリングして取得

Slide 14

Slide 14 text

©Fusic Co., Ltd. Express側: Callback ID抽出 CallbackIDの抽出

Slide 15

Slide 15 text

©Fusic Co., Ltd. Express側: Callback送信 AWS SDK経由で送信

Slide 16

Slide 16 text

©Fusic Co., Ltd. デモ実行結果 承認ボタン押下後 → Processing approved content 却下ボタン押下後 → Processing rejected content

Slide 17

Slide 17 text

©Fusic Co., Ltd. 動作確認まとめ Human-in-the-Loop が実現できた! 項目 結果 Lambda呼び出し 成功 Callback ID取得 CloudWatch Logsから取得成功 承認待ち中 Lambda停止、課金ゼロ 承認Callback 即座に再開、 approved処理 却下Callback 即座に再開、 rejected処理

Slide 18

Slide 18 text

©Fusic Co., Ltd. Checkpoint-and-Replay ハンドラーは毎回最初から再実行される ただし、完了済み操作はキャッシュから即座に結果を返す 初回: Step1実行 → Callback作成 → 待機(停止) 再開: Step1キャッシュ → Callback復元 → Step2実行

Slide 19

Slide 19 text

©Fusic Co., Ltd. 応用例: RAG + 人間レビュー フロー: 1. [step] ベクトル検索で関連文献検索 2. [step] LLMで回答生成 3. [callback] 専門家レビュー待ち (数時間〜1日) 4. [step] 修正・公開 稟議システムと同じパターン!

Slide 20

Slide 20 text

©Fusic Co., Ltd. 応用例: マルチエージェント フロー: 1. [step] Planner Agent - 調査項目を分解 2. [parallel] Research Agents - 3並列で情報収集 3. [step] Synthesizer Agent - 結果統合 4. [callback] 人間確認待ち 5. [step] Output Agent - 最終レポート生成 合計10分以上 + 人間待ち時間

Slide 21

Slide 21 text

©Fusic Co., Ltd. 生成AIの7つのパターン どのクラウドでも共通のパターン  AWSの場合例がありあます https://github.com/aws-samples/sample-ai-workflows-in-aws-lambda-durable-functions パターン なぜDurableが必要? Prompt Chaining 連鎖が長いとタイムアウト Human Review 数日待てる LLM as Judge 並列実行+集約 Agent with Tools ループ回数が予測不能 Parallel Invocation 全完了まで待機 Structured Output 失敗時の再実行 Durable Strands 長期セッション維持

Slide 22

Slide 22 text

©Fusic Co., Ltd. 制限事項 制限 値 実務での意味 タイムアウト 最大1年 人間承認に十分 チェックポイント ~256 KB 大きなデータはS3に 操作数 3,000 1000回ループでも余裕 ランタイム Node.js 22+ 20.xは不可

Slide 23

Slide 23 text

©Fusic Co., Ltd. Human-in-the-Loop の実現 ● タイムアウトの壁 → 1年待てる ● 状態管理地獄 → 自動チェックポイント ● 承認待ち → Callback(課金ゼロ) 稟議もAIレビューも、同じパターンで解決

Slide 24

Slide 24 text

©Fusic Co., Ltd. OSEKKAI × TECHNOLOGY ココロと技術で、ぴったりも、びっくりも。 Thank You