Why Wire Is Moving Off Cloudflare Durable Objects
Wire, which builds context containers for AI agents, is leaving Cloudflare Durable Objects for a self-built Fly Machines runtime, citing structural limits and sharing benchmark results.
Wire, which provides isolated context containers (entries, embeddings, knowledge graphs) queried via MCP for AI agents, has run every container on Cloudflare Durable Objects since inception. The team is now moving off due to four structural constraints: the vector index living in a separate service (Vectorize) added network latency, compute couldn't run alongside the data, containers were locked to their creation location with no dedicated capacity per tenant, and Durable Objects can't be self-hosted for regulated customers.
Their replacement is a Bun-based runtime running on Fly Machines. Each organization gets one host process, with the vector index embedded directly into the SQLite file via sqlite-vec so candidate retrieval happens in-process. Snapshots go to object storage, a per-region router places containers near callers, and durability comes from continuous WAL shipping — writes don't ack until their WAL frame reaches object storage.
The results are measurable: warm tool calls dropped from roughly 0.4s (with spikes past 2s) to a steady 0.3s, and cold wake-ups fell from 3.7s to 1.4s. Recall@5 improved from 78.1% to 89.1%, though the team is transparent that part of that gain came from switching embedding models rather than architecture alone — the architecture mainly makes wide in-process reranking and exact nearest-neighbor search affordable.
The move matters to engineers because it illustrates the real cost of rebuilding durability and single-writer consistency that Durable Objects give for free: an early version lost acked writes between checkpoints before continuous WAL shipping fixed it. Container URLs, MCP tools, and the REST API remain unchanged, and the new runtime — currently in beta — is planned to be open-sourced once full production migration completes.