Durable Objects

cloudflareCoordination servicecloudflare-durable-objects

Named single-threaded objects that serialise access to their own SQLite storage.

Provider
cloudflare
Category
Operations
Properties · 3 set by this component
propertytypevaluesrequiredkind defaultthis component
consensusenumnone | raft | paxos | zabnonone▸ none
managedboolean—nofalse▸ true
maxStorageGb · component propertyinteger—no10inherited
nodesinteger—no—inherited
replicatedboolean—nofalseinherited
requestsPerSecondSoftLimit · component propertyinteger—no1000inherited
roleenummetadata | lock | discovery | placement | sharding | leader-election | configyes—▸ lock
singleThreaded · component propertyboolean—notrueinherited
storageBackend · component propertyenumsqlite | key-valuenosqliteinherited
Rules that apply · 2

Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.

shared-dependency-without-redundancy

The design requires redundant discovery, but this DNS or coordination service, which everything depends on, runs on a single provider or a single replica. Its failure is the whole system's failure.

  • — all of these hold:
  • — the design requirement `availability.discoveryRedundant` is true
  • — any of these hold:
  • — the node's `redundantProviders` is false
  • — the node's `replicated` is false
stateful-engine-pinned-to-single-zone

A matching engine, coordination service or event store living in exactly one availability zone, with no failover and no replication, is lost with that zone. Everything that depends on it stops with it.

  • — all of these hold:
  • — the node sits inside exactly 1 availability-zone group
  • — any of these hold:
  • — the node's `failover` is "none"
  • — the node's `replicated` is false
  • — the node's `replication` is "none"
Use it in a design
nodes:
  - { id: "durable-objects", component: "cloudflare-durable-objects" }
Other Coordination service products · 17
Source
# yaml-language-server: $schema=../../schema/component.schema.json
# Durable Objects: named single-threaded objects that serialise access to their own storage, used as
# the coordination and locking primitive of the Workers platform. "Durable Objects - Limits" states
# new namespaces use the SQLite backend, each object is single-threaded, with 10 GB and ~1,000 rps.
schemaVersion: "1"
type: "component"
id: "cloudflare-durable-objects"
kind: "coordination-service"
provider: "cloudflare"
docs: "https://developers.cloudflare.com/durable-objects/platform/limits/"
defaults:
  managed: true
  role: "lock"
  consensus: "none"
properties:
  storageBackend:
    type: "enum"
    values: ["sqlite", "key-value"]
    default: "sqlite"
  singleThreaded:
    type: "boolean"
    default: true
  maxStorageGb:
    type: "integer"
    default: 10
  requestsPerSecondSoftLimit:
    type: "integer"
    default: 1000

The same page as markdown, for an agent: /catalogue/components/cloudflare-durable-objects.md