Após uma implantação, um Cloudflare Durable Object ativo pode continuar funcionando com a versão atual do código até entrar em hibernação ou até o fim do prazo definido. Em 30 de outubro, a Cloudflare definiu as atualizações adiadas como padrão, com atraso máximo de cinco minutos. Para os desenvolvedores, isso muda o comportamento de objetos em execução durante uma implantação: a atualização não precisa interrompê-los imediatamente, e conexões WebSocket compatíveis podem ser preservadas na transição para a nova versão.

O que acontece durante a implantação
Durable Objects são objetos endereçáveis, com identidade e estado persistentes, que a Cloudflare usa, entre outras coisas, para coordenar clientes, tarefas de longa duração e sessões WebSocket. Cada objeto executa uma única versão do código por vez. Portanto, uma substituição imediata pode reiniciar uma instância ativa e interromper o trabalho ou as conexões.
Agora, o comportamento padrão é uma transição adiada. Após a implantação, um objeto ativo continua atendendo solicitações com a versão antiga. Se entrar em hibernação antes, a nova versão será iniciada na próxima solicitação. Se os cinco minutos terminarem enquanto o objeto ainda estiver ativo, ele será reiniciado e passará a usar a nova versão. A implantação do Worker é concluída separadamente: o atraso diz respeito ao momento em que um objeto já ativo começa a executar o novo código.
Quem se beneficia
A mudança é importante para serviços nos quais um objeto mantém o trabalho entre solicitações, como sessões longas, coordenação entre vários clientes ou conexões WebSocket. A transição adiada cria uma janela para que esse objeto conclua naturalmente a atividade em andamento ou entre em repouso antes de se atualizar. Para WebSocket, a Cloudflare especifica uma condição: as conexões que usam a Hibernation API permanecem conectadas quando o objeto recebe o novo código após a hibernação.
A conclusão prática para as equipes é identificar quais objetos ativos podem permanecer ocupados por mais de alguns minutos e verificar qual API de WebSocket está sendo usada. Isso determina se o novo processo de implantação dará ao aplicativo a chance de fazer uma transição gradual ou se a conexão terminará durante uma atualização forçada.
Cinco minutos são uma janela, não uma garantia
A Cloudflare descreve a atualização adiada como um mecanismo de melhor esforço: o objeto pode ser reiniciado antes, por exemplo, durante uma atualização do ambiente de execução. Se não entrar em hibernação até o fim do atraso máximo, a plataforma aplicará a nova versão por meio de uma reinicialização. Por isso, é importante salvar o estado essencial em armazenamento persistente e projetar as operações considerando a possibilidade de serem executadas novamente. A documentação da Cloudflare recomenda salvar o estado que deve sobreviver às implantações, em vez de depender da memória da instância ativa.
As equipes podem substituir esse comportamento na configuração dos Durable Objects: definir o modo de atualização imediata ou escolher outro prazo para a transição adiada. O modo imediato é útil quando a nova versão precisa entrar em vigor sem demora, por exemplo, para uma correção urgente; um prazo mais longo pode dar mais tempo aos objetos, mas também prolonga o período em que algumas instâncias ainda usam a versão antiga.
O que verificar antes da próxima implantação
Confira a compatibilidade das solicitações entre o Worker e o Durable Object durante o período em que podem estar executando versões diferentes. Verifique se o estado essencial está salvo no armazenamento, e não apenas na memória. Para WebSocket, confirme se o aplicativo usa a Hibernation API: conexões comuns podem ser encerradas quando a atualização é aplicada. Se a implantação exigir uma transição imediata, confira a configuração explícita do modo, em vez de confiar no novo padrão.
Assim, a Cloudflare alterou o equilíbrio padrão durante a implantação: objetos ativos recebem um período limitado para fazer uma transição natural, enquanto as equipes continuam podendo acelerar a atualização por meio de uma configuração. O mais útil para os desenvolvedores é verificar a compatibilidade entre as versões antiga e nova, a persistência do estado e o tipo de WebSocket antes da próxima implantação.