耐久実行の系譜と現行制約

対象本文

第8章のStep Functions実行保証、第10章の記録と再生、code-first durable execution、履歴上限を補います。第9章9.6のワークフロー境界表と第10章10.4の耐久フローの記入用雛形(空欄版)も本表が持ちます。第9章9.2・9.4のワークフロー記述面(視覚的ローコード、コネクタ)の現況も本表が受けます。長期実行の版管理はA-DURABLE-03へ分けます。

収集方法

2026年7月10日にTemporal、Microsoft Durable Task、AWS Lambda durable functions、AWS Step Functionsの公式資料を照合しました。系譜の年次は製品史の位置づけに限り、設計判断は現行の履歴・再試行・待機の提供仕様から行います。

現在の答え

耐久実行の中核は、processを一台で長時間動かし続けることではありません。決定、activityの結果、timer、external eventを履歴またはcheckpointへ記録し、別processでも続きから論理実行を再構成することです。

系譜の一つはAmazon Simple Workflow Serviceのdecider modelから、Microsoft Durable Task/Durable Functions、Uber Cadence、Temporalへ続きます。近年はDBOS、Restate、Inngest等のcode-first製品が増え、AWSも2025年にLambda durable functionsを提供しました。製品名は増えても、再実行されるorchestratorと、再実行してよいactivityの境界を分ける課題は同じです。

基盤論理実行を保つ方法現行の重要制約
TemporalEvent Historyをreplayし、activity結果を再利用51,200 eventsまたは50MBでhard limit、10,240 eventsまたは10MBでwarning。Continue-As-Newで新しいRunへ世代交代
Microsoft Durable Taskorchestration historyをreplayし、完了activityの結果を返すorchestrator codeの決定性、external I/Oをactivityへ分離、instance/version適合が必要
Lambda durable functionsstep/waitのcheckpointをserviceが保存し、複数Lambda invocationを論理実行へ結ぶ1 invocationは通常のLambda timeout内。実行全体は最長約1年。公式文書に365日とAPI最大366日の表記差
Step Functions Standardstate transitionと実行履歴をserviceが保持Standard/Expressでduration、delivery、history、pricingが異なる

TemporalのContinue-As-Newは、同じWorkflow IDを保ちながら新しいRun IDと空のEvent Historyへ引き継ぐ操作です。大きいprompt、検索結果、生成物を履歴へ埋めず、外部objectの参照、版、digestを残します。

Lambda durable functionsでは、context.wait()が待機をcheckpointした後にinvocationを終え、待機中のcomputeを占有しません。execution nameは重複起動を避けるkeyとして使えます。ただしwait、checkpoint storage、history、external side effectが無料・自動で安全になるという意味ではありません。

Step Functionsはworkflow typeで保証を分けます。Standardのexactly-onceという説明にも、ASLで指定したRetryは別に作用します。Expressは非同期と同期で保証が異なります。製品の見出しだけでなく、開始、task、callback、外部APIのどの範囲に保証が及ぶかを読みます。

ワークフロー記述面とコネクタの現況

書籍第9章9.2・9.4は、記述面(手書きコード、宣言的状態機械、視覚的ローコード、コード内ワークフロー、エージェント型)とコネクタ接続仕様の原理だけを扱います。製品の顔ぶれ、コネクタ数、提供状態、料金は揮発するため本表では固定せず、一次資料の入口だけを記録します。コネクタの数は集計時点と数え方で変わるため数えません。接続仕様の設計観点(身元と委任、権限、入出力、時間、失敗、場所、変更)は書籍9.4の表を正とします。

一次資料

記入用の雛形——ワークフロー境界表(空欄版)

書籍第9章9.6のワークフロー境界表を自分の業務で書き出すための空欄版です。段階ごとに複製して使います。

ワークフロー名・目的:
開始条件 / 完了条件 / 取消条件:
段階ID・名前:
次の一手を決める主体(規則 / コード / モデル / 人間):
入力参照 / 出力参照 / 対象ダイジェスト:
呼び出す実行面と統合面:
待機方式 / 期限 / 再開条件:
リトライ予算 / 打ち切り / 補償:
必要な身元・委任scope / 再認可条件:
冪等性キー / 作用記録:
版 / 変更時の既存実行の扱い:
観測する段階状態 / 人へ返す条件:

記入用の雛形——耐久フロー(空欄版)

書籍第10章10.4の耐久フロー図に、各境界の記録を書き添えるための空欄版です。段階ごとに複製して使います。

段階ID・名前:
開始条件:
履歴へ残すイベント:
アプリ状態の正本・参照・ダイジェスト:
外部作用:
冪等性キー・作用記録:
必要な委任scope・再認可条件:
承認対象・期限(必要な場合):
失敗時のリトライ予算・補償:
別環境で再開するための前提:
次の段階へ進む条件:

既知の未知

変更履歴