Skip to content

Concepts

A Queue has an identity in the control catalog. Message rows live in scheduler.sqlite. A producer binding writes send into that authority. A push consumer claims a batch and dispatches it to the Worker's queue handler.

Each Queue has at most one active push consumer at a time. Delivery is at-least-once: a crash before ack retries. Global FIFO is not provided. Retry, concurrency, and crashes can reorder.

Unknown dispatch

If the native dispatch outcome is unknown (process / workerd gone before confirmation), the lease is retained and the tenant max_retries budget is not consumed. Recovery may deliver again with the same attempt number. This is not exactly-once.

Queues JavaScript APIs for send / batch / delay / content types / ack / retry / metrics match Cloudflare. Per-message first-call-wins.

Compatibility

TopicCloudflareopen-compute
JavaScript APIQueues JavaScript APIsSame: send / batch / delay / content types / ack / retry / metrics
DurabilityGlobal replicationLocal scheduler.sqlite on the node running ocd
DeliveryAt-least-onceAt-least-once; unknown dispatch keeps the lease
Global FIFOAvailableNot provided
Pull consumerAvailableNot provided