openaijamodel: gpt-5-mini-2025-08-07
Workflowsにステップ単位のロールバック(saga)サポートが追加
Key Points
- ステップ毎に補償処理を定義
- 逆順でロールバック実行
- リトライ・タイムアウト指定可能
Summary
Workflowsがsagaスタイルのロールバックをサポートしました。各 step.do() に補償処理(rollback)を定義でき、インスタンス失敗時にはステップ開始の逆順でロールバックハンドラが実行されます。これにより、在庫予約、決済認可、チケット発行、インフラプロビジョニングなど外部システムをまたぐ複数ステップ処理のクリーンアップを各ステップに近い場所で扱えます。
Key Points
- 各 step.do() オプションで rollback と rollbackConfig を指定できる(例: rollback: async ({ output }) => { /* undo */ })。
- rollbackConfig で retries(limit, delay, backoff)と timeout を設定可能。リトライやタイムアウトはロールバック専用に制御できる。
- インスタンスのステータスレスポンスにロールバック結果が含まれるため、実行状況をAPI経由で確認できる。
- Workflows の分析(analytics)はロールバックのライフサイクルイベントを出力し、順方向の失敗とロールバック失敗を区別してデバッグ可能。
- 既存のトップレベルの catch にすべてのクリーンアップを集約するより、各ステップに補償処理を置くことでコードの局所性と可観測性が向上する。
Practical notes for engineers
- 外部副作用を伴うステップには必ず補償処理を用意する。出力(output)にリソースID等を返して rollback で利用する。
- retry/backoff と timeout をロールバック固有に設定して、恒常的失敗と一時的失敗で挙動を分ける。
- インスタンスAPIとWorkflows analyticsのイベントを確認して、フォワード実行の失敗とロールバック失敗を個別に追跡する。
参照: rollback オプション(ドキュメント)で詳細設定を確認してください。