Po nasazení může aktivní Cloudflare Durable Object nyní pokračovat v práci na stávající verzi kódu, dokud nepřejde do hibernace, případně do uplynutí stanovené lhůty. Cloudflare 30. října nastavila odloženou aktualizaci jako výchozí s maximálním zpožděním pěti minut. Pro vývojáře to mění chování již běžících objektů během nasazování: aktualizace je nemusí okamžitě přerušit a podporovaná WebSocket připojení mohou při přechodu na novou verzi zůstat zachována.

Co se děje během nasazení
Durable Objects jsou adresovatelné objekty se stabilní identitou a stavem, které Cloudflare využívá mimo jiné ke koordinaci klientů, dlouhotrvajícím úlohám a WebSocket relacím. Pro jeden objekt je současně aktivní jedna verze kódu. Při okamžité výměně se proto může aktivní instance resetovat a přerušit práci nebo spojení.
Výchozím scénářem je nyní odložený přechod. Po nasazení aktivní objekt dál obsluhuje požadavky se starou verzí. Pokud přejde do hibernace dříve, nová verze se spustí při dalším požadavku. Jestliže uplyne pět minut a objekt je stále aktivní, resetuje se a začne používat novou verzi. Nasazení Workeru přitom skončí samostatně: zpoždění se týká okamžiku, kdy již aktivní objekt začne vykonávat nový kód.
Komu to pomůže
Změna je důležitá pro služby, v nichž jeden objekt udržuje práci mezi požadavky, například pro dlouhou relaci, koordinaci několika klientů nebo WebSocket spojení. Odložený přechod vytváří časové okno, během kterého může takový objekt přirozeně dokončit aktuální činnost nebo přejít do nečinnosti, než se aktualizuje. U WebSocket Cloudflare výslovně uvádí jednu podmínku: spojení využívající Hibernation API zůstanou připojená, když objekt po hibernaci převezme nový kód.
Praktickým závěrem pro tým je určit, které aktivní objekty mohou zůstat vytížené déle než několik minut, a zjistit, které WebSocket API používají. Na tom záleží, zda nový postup nasazení aplikaci poskytne šanci na plynulý přechod, nebo zda spojení při vynucené aktualizaci skončí.
Pět minut je časové okno, nikoli záruka
Cloudflare popisuje odloženou aktualizaci jako best effort: objekt se může resetovat dříve, například při aktualizaci runtime prostředí. Pokud do konce maximální lhůty nepřejde do hibernace, platforma nasadí novou verzi prostřednictvím resetu. Důležitý stav proto ukládejte do trvalého úložiště a navrhujte operace s ohledem na možné opětovné spuštění. Dokumentace Cloudflare doporučuje uchovávat stav, který má přežít nasazení, místo spoléhání na paměť aktivní instance.
Týmy mohou chování přepsat v konfiguraci Durable Objects: nastavit režim okamžité aktualizace nebo zvolit jinou lhůtu pro odložený přechod. Okamžitý režim se hodí, když se má nová verze projevit hned, například při naléhavé opravě; delší prodleva může objektům poskytnout více času, zároveň však prodlouží období, kdy některé instance obsluhují starou verzi.
Co zkontrolovat před dalším nasazením
Ověřte kompatibilitu požadavků mezi Workerem a Durable Object během období, kdy mohou běžet různé verze. Zkontrolujte, zda je kritický stav uložen v úložišti, a ne pouze v paměti. U WebSocket zjistěte, zda aplikace používá Hibernation API: běžná spojení mohou při nasazení aktualizace skončit. Pokud nasazení vyžaduje okamžitý přechod, ověřte výslovné nastavení režimu a nespoléhejte na novou výchozí hodnotu.
Cloudflare tak změnila výchozí kompromis při nasazení: aktivní objekty dostanou omezený čas na přirozený přechod a týmy si zachovávají možnost aktualizaci urychlit změnou nastavení. Nejužitečnější je před dalším nasazením ověřit kompatibilitu staré a nové verze, zachování stavu a typ WebSocket připojení.