Orange Book
Build

Choosing Queues, Cron, or Workflows

Select Cloudflare async primitives by separating buffered messages, scheduled triggers, and durable multi-step execution.

Edited and verified by Orange Book Editorial Team ·

BUILDINTERMEDIATE18 minutesVerified 2026-08-26

Fast choice

Use Queues to buffer producers and consumers, Cron for a UTC schedule, and Workflows for durable steps, retries, and waits.

NeedStart withQuestions to answer
Accept now, consume laterQueuesAre duplicates safe, how do retries end, where do failures go?
Run on a scheduleCron TriggerIs UTC conversion correct and is execution idempotent?
Coordinate a long multi-step jobWorkflowsWhich steps can replay, and how are state and compensation handled?

“Async” does not mean automatically reliable

Design consumers with at-least-once delivery in mind: assign an idempotency key, check whether work already completed, and treat downstream timeouts as ordinary branches. A Cron scheduled() handler triggers work; it does not persist a long-running process for you.

Acceptance checklist

  1. Deliver one message twice and still produce one business result.
  2. Force a downstream 500 and observe retry and alert behavior.
  3. Verify the UTC schedule instead of guessing from local time.
  4. Record maximum backlog, processing time, and manual replay procedure.
  5. Add compensation or human confirmation around irreversible side effects.

Primary sources

Did this page help you complete your goal?

Beta feedback is generated in this browser and is never uploaded automatically.

On this page