
Cloudflare Durable Objects ganham destaque como primitivo ideal para agentes
resumo de ~3 min
O que são Durable Objects
Durable Objects (DOs) da Cloudflare combinam três conceitos: um isolate serverless V8 que sobe e desce sob demanda, uma instância SQLite pareada por objeto para armazenamento durável, e roteamento de requisições para um isolate específico por ID. Em vez de pensar em serviços que conversam com um banco, você modela o sistema como um conjunto de "objetos" orientados a eventos, cada um com seu próprio ID e estado.
Por que são ideais para agentes
Calvin French-Owen, que passou meses construindo quase exclusivamente com DOs, argumenta que eles são um primitivo quase perfeito para agentes por vários motivos:
- Custo extremamente baixo: cobram apenas por storage quando pausados. Uma infra multi-agente de tamanho razoável custou ~US$ 10/mês, contra 10-50x mais na AWS.
- Single-threaded: elimina preocupações com locks e concorrência - apenas uma invocação roda contra o storage por vez.
- WebSockets nativos: ideal para fan-out de notificações e experiências em tempo real sem sistemas multi-tiered.
- Bindings simples: conectar a outros DOs, serviços ou buckets R2 é direto via
wrangler.jsonc, sem VPCs, Security Groups ou NAT. - Dev local eficiente: o
wranglerfunciona como ambiente local + toolkit, sem Docker ou Postgres. O drift entre local e produção é mínimo (SQLite nos dois). - Token-efficient para coding agents: implementações requerem poucas linhas de código, o que acelera agentes de codificação que exploram codebases.
- Preview environments quase gratuitos: como DOs idle não custam nada, é viável deployar por branch no CI.
Limitações
- Gates de concorrência: funções marcadas com readable/writable gates podem bloquear subscribers se um LLM for chamado antes de escrever no storage. O autor relata bloqueios de dezenas de segundos em código gerado por agentes.
- Observabilidade limitada: menos controle e visibilidade comparado a AWS/GCP/Azure em casos de falhas de gateway ou deploy.
- Suporte primário em TypeScript: Rust, Go e Python têm menos opções e exemplos.
- APIs Node incompletas: HTTP/2 não é suportado (afeta gRPC, por exemplo), exigindo cuidado com dependências nativas.
- Migrations complicadas: mudanças de schema exigem código de migração ao acordar o DO, e caminhos antigos nunca podem ser removidos sem acordar todos os DOs.
- Sem BYO-Cloud: clientes que precisam de cloud própria não conseguem usar.
Alternativas emergentes
- Restate: runtime de execução durável com "Virtual Objects" (single writer, storage acoplado), self-hostable, com bindings em Rust e Go.
- Rivet (YC): infraestrutura de "actors" baseada em V8 isolates, espiritualmente similar à Cloudflare.
- Vercel: Workflows, Sandboxes, AI Gateway, Connect e Functions compõem primitivos para agentes long-lived. O EVE é apresentado como a culminação dessas ferramentas.