Durable Objects:アウトバウンド接続でオブジェクトが維持される
Key Points
- アウトバウンド接続で維持
- 最大15分の延長
- LLMストリーミング保護
Summary
Durable Objects は、connect() やアウトバウンド WebSocket で作成されたアクティブなアウトバウンド接続が存在する間、オブジェクトを強制的に維持するようになりました。以前は受信トラフィックがないと70〜140秒でエビクションされていましたが、今回の変更でストリーミングや長時間のアウトバウンド接続中に中断されるリスクが軽減されます。
Key Points
- アウトバウンド接続(connect() またはアウトバウンド WebSocket)がアクティブな間、各接続が Durable Object のエビクションを防止します。
- すべてのアウトバウンド接続が閉じられると、従来どおり70〜140秒の非アクティブウィンドウ後にエビクションされます。
- 各アウトバウンド接続による維持効果は最大15分まで(15分経過後は接続自体は継続するがエビクション防止効果は切れます)。
- 既存のアカウント単位のインスタンス上限は引き続き適用されます。
- LLMトークンのストリーミングや長時間のアウトバウンド処理を行うエージェントで特に有用です。
Recommendations
- 長時間ストリーミングを想定する場合は15分を超える処理を分割するか、再接続戦略を実装してください。
- エビクションやインスタンス上限を監視し、必要に応じてリトライやフォールバックを組み込んでください。
- 接続状態の検知・ログを充実させ、途中断や15分経過後の振る舞いに対応する設計にしてください。
詳しくは「Lifecycle of a Durable Object」を参照してください。