背景
PR #809で追加したCallBridgeは、Web標準のWebSocket API(server.acceptとaddEventListener)を使用している。この方式ではWebSocket接続中のDurable Objectがメモリに保持され、接続時間全体がDuration課金の対象になる。
Phase 0では実装の単純さを優先して現状のままとし、本番運用で同時通話数や無音時間が増えた段階でWebSocket Hibernation APIの費用対効果を検討する。
検討内容
- ctx.acceptWebSocketとwebSocketMessage/webSocketCloseへの移行
- 休止・再起動後に必要な通話状態(認証済み情報、発信元、チューニング設定、検索slotなど)の保存・復元方法
- タイマー、進行中ターン、interrupt処理への影響確認
- 通話中のメッセージ頻度を踏まえ、実際に休止可能な時間と削減できるDurationを計測
- ConversationRelayとの接続が休止・再起動をまたいで維持されることの検証
完了条件
- Hibernation導入によるコスト削減効果を計測できている
- 導入する場合、休止後も通話状態と会話が継続する
- setup、prompt、interrupt、切断の回帰テストがある
- 効果が小さい場合は、導入しない判断と計測結果を記録する
対象外
背景
PR #809で追加したCallBridgeは、Web標準のWebSocket API(server.acceptとaddEventListener)を使用している。この方式ではWebSocket接続中のDurable Objectがメモリに保持され、接続時間全体がDuration課金の対象になる。
Phase 0では実装の単純さを優先して現状のままとし、本番運用で同時通話数や無音時間が増えた段階でWebSocket Hibernation APIの費用対効果を検討する。
検討内容
完了条件
対象外