Queue services
Queue services
The family runs two reliability layers stacked: Hookdeck on the ingress side (external webhook → Worker), Cloudflare Queues on the fan-out side (Worker → consumers). Both free, both no card.
| Service | Status | Role | Free tier |
|---|---|---|---|
| cloudflare-queues.md | active | queue-primary (fan-out) | 1M ops / month |
| hookdeck.md | active | webhook-ingress | 50K events / month |
| upstash-qstash.md | deferred | queue-fallback | 500 messages / day |
| inngest.md | deferred | queue-fallback | Generous free tier (durable workflows) |
Why Cloudflare Queues + Hookdeck (and not Trigger.dev)
Documented in
decisions/architecture/distribution-and-queues-locked.md
(Batch 13 lock) and the earlier
decisions/architecture/queue-cloudflare-native.md
(Batch 8). TL;DR: native Worker bindings + same dashboard as
Pages/R2/Workers + Hookdeck's free ingress retry layer covers the
family's webhook reliability surface without adding a new account.
Trigger.dev's durable-workflow model was considered and walked back
as redundant for current volume.
When to revisit
- If Cloudflare Queues' 1M ops/month cap becomes a real ceiling → consider QStash for low-volume bursts.
- If Hookdeck's 50K events/month cap is approached → revisit; paid plans available but card-required (so swap, don't upgrade).
- If the family ever ships durable multi-step workflows that survive restarts → consider Inngest.