Workers: stateless compute
A Worker exports handlers such asfetch. It has no local durable state and
can be started wherever demand arrives. That makes Workers the right place for
HTTP routing, authentication, validation, transformations, and calls to bound
components.
Durable Objects: named state
A Durable Object combines a stable identity with serialized event handling. Each object has durable key-value and SQL storage, alarms, and hibernatable WebSockets. Requests for the same object name are routed to the same logical object, so application code does not manage locks or assign partitions. Different object names scale independently. A chat room, customer, workflow, device, or tenant can each be its own unit of state and concurrency.Bindings: explicit composition
wrangler.jsonc declares every capability available in env:
Data path
The built-ins use the same model: Streams own ordered ingestion. Pipelines own transforms and progress. Sinks own delivery idempotency. Catalogs own Iceberg table state. Vector, Graph, and Query bindings provide focused stateful APIs. These are prebuilt components, not separate server fleets.Serverless responsibility split
The result is a serverless architecture from request handling through durable
data processing: code and configuration are the unit of deployment, while the
platform owns the machines.
