Cloudflare Queues vs Upstash QStash
SEPT 2026 auditA comparison of Cloudflare Queues and Upstash QStash built from values read directly from each provider's own documentation, with the source recorded against every figure.
The short answer
Choose Cloudflare Queues if…
Workers applications that want a queue with no egress or throughput charges and a retention window measured in days rather than hours.
Editorial · Palash Bagchi · approved
Choose Upstash QStash if…
HTTP-first workloads that want scheduling and delay measured in months rather than a day, without running a consumer process.
Editorial · Palash Bagchi · approved
Consider something else if…
- Cloudflare Queues: Billing is per 64 KB operation rather than per message, so a large payload or a chatty retry loop costs several times what the message count suggests.
- Upstash QStash: The free plan is capped per day rather than per month, so a single burst can exhaust it while a monthly allowance elsewhere would absorb the same volume.
Neither quite fits? Every other option, ranked by iScore: Cloudflare Queues alternatives · Upstash QStash alternatives
6 sourced criteria separate them — see where, with sources, below.
Pick the criteria you care about. The chart counts how many of them lean toward each provider — the same read as scanning the bars below, just totalled for the ones you chose.
Cloudflare Queues 0
Upstash QStash 0
At a glance.
| Criterion | Cloudflare Queues | Upstash QStash |
|---|---|---|
| Pricing | ||
| Free tier | Yes | Yes |
| Kind of free offer | Free tier | Free tier |
| What the free plan includes | The first 1,000,000 standard operations a month are not billed; beyond that the rate is $0.40 per million, and each message costs three operations. | 1,000 messages a day. |
| Pricing model | Billed per operation, not per message: one operation per 64 KB written, read or deleted, and a message larger than 64 KB counts as several. Cloudflare states a normal delivery takes three operations — one write, one read, one delete — so a million messages is nearer three million operations. Workers Paid includes 1,000,000 operations a month, then $0.40 per million; the free plan allows 10,000 a day. | Per message rather than per operation, metered against a daily ceiling on the free plan and priced at $1 per 100,000 on Pay as You Go, with monthly bandwidth caps alongside — 50 GB on the smaller plans, 1 TB and 5 TB above. |
| Queues | ||
| Included per month | 1,000,000 operations a month on Workers Paid, then $0.40 per million. An operation is each 64 KB written, read or deleted, so a typical message costs three — Cloudflare's own formula is ((messages × 3) − 1,000,000) / 1,000,000 × $0.40. Workers Free allows 10,000 operations a day. | 1,000 messages a day on the free plan. Pay as You Go is $1 per 100,000 messages with no daily cap; fixed plans run $180 a month for 1M a day and $420 for 10M. |
| Maximum message size | 128 KB per message, with roughly 100 bytes of that taken by internal metadata. | 1 MB on the free plan, 10 MB on Pay as You Go and 50 MB on the fixed plans. |
| Message retention | 4 days by default on Workers Paid, configurable up to 14 days. Workers Free is fixed at 24 hours. | Dead letter queue retention of 3 days on the free plan, 7 days on Pay as You Go, 30 days and 3 months on the fixed plans. |
| Maximum delay | 24 hours, set with delaySeconds when sending or retrying. | 7 days on the free plan; 1 year on Pay as You Go and unlimited on the fixed plans. |
| Dead letter queue | Supported | Supported |
Where they differ.
What the free plan includes
- Cloudflare Queues
- The first 1,000,000 standard operations a month are not billed; beyond that the rate is $0.40 per million, and each message costs three operations.
- Upstash QStash
- 1,000 messages a day.
Sources (2) →Sources ↓
- Queues Pricing — Cloudflare ↗
“you can use the following formula to estimate your monthly bill: ((Number of Messages * 3) - 1,000,000) / 1,000,000 * $0.40”
Read 2026-09-13 · official docs · Report a correction
- QStash Pricing — Upstash ↗
“Free $0 [...] Messages per Day 1,000”
Read 2026-09-13 · official pricing · Report a correction
Pricing model
- Cloudflare Queues
- Billed per operation, not per message: one operation per 64 KB written, read or deleted, and a message larger than 64 KB counts as several. Cloudflare states a normal delivery takes three operations — one write, one read, one delete — so a million messages is nearer three million operations. Workers Paid includes 1,000,000 operations a month, then $0.40 per million; the free plan allows 10,000 a day.
- Upstash QStash
- Per message rather than per operation, metered against a daily ceiling on the free plan and priced at $1 per 100,000 on Pay as You Go, with monthly bandwidth caps alongside — 50 GB on the smaller plans, 1 TB and 5 TB above.
Sources (2) →Sources ↓
- Pricing — Cloudflare Queues docs ↗
“An operation is counted for each 64 KB of data that is written, read, or deleted. [...] Standard operations 10,000 operations/day included 1,000,000 operations/month included + $0.40/million operations [...] In most cases, it takes 3 operations to deliver a message: 1 write, 1 read, and 1 delete.”
Read 2026-09-07 · official docs · Report a correction
- QStash Pricing — Upstash ↗
“$1 per 100K messages [...] Max Messages per Day 1,000 Unlimited 1 M 10 M 100M+ [...] Max Monthly Bandwidth 50 GB 50 GB 1 TB 5 TB Unlimited”
Read 2026-09-06 · official pricing · Report a correction
Included per month
- Cloudflare Queues
- 1,000,000 operations a month on Workers Paid, then $0.40 per million. An operation is each 64 KB written, read or deleted, so a typical message costs three — Cloudflare's own formula is ((messages × 3) − 1,000,000) / 1,000,000 × $0.40. Workers Free allows 10,000 operations a day.
- Upstash QStash
- 1,000 messages a day on the free plan. Pay as You Go is $1 per 100,000 messages with no daily cap; fixed plans run $180 a month for 1M a day and $420 for 10M.
Sources (2) →Sources ↓
- Pricing — Cloudflare Queues docs ↗
“1,000,000 operations/month included + $0.40/million operations [...] An operation is counted for each 64 KB of data that is written, read, or deleted. [...] In most cases, it takes 3 operations to deliver a message [...] 10,000 operations/day included”
Read 2026-09-06 · official docs · Report a correction
- QStash Pricing — Upstash ↗
“Free $0 [...] Messages per Day 1,000 [...] Pay as You Go $1 per 100K messages [...] Messages per Day Unlimited [...] $180 / month [...] 1M [...] $420 [...] 10M”
Read 2026-09-06 · official pricing · Report a correction
Maximum message size
128 KB per message, with roughly 100 bytes of that taken by internal metadata.
1 MB on the free plan, 10 MB on Pay as You Go and 50 MB on the fixed plans.
Sources (2) →Sources ↓
- Queues limits — Cloudflare Docs ↗
“Feature Limit Queues 10,000 per account Message size 128 KB 1 Message retries 100 Maximum consumer batch size 100 messages [...] Messages can include up to ~100 bytes of internal metadata that counts towards total message limits.”
Read 2026-09-13 · official docs · Report a correction
- QStash Pricing — Upstash ↗
“Max Message Size 1 MB 10 MB 50 MB 50 MB Custom”
Read 2026-09-06 · official pricing · Report a correction
Message retention
4 days by default on Workers Paid, configurable up to 14 days. Workers Free is fixed at 24 hours.
Dead letter queue retention of 3 days on the free plan, 7 days on Pay as You Go, 30 days and 3 months on the fixed plans.
Sources (2) →Sources ↓
- Queues pricing — Cloudflare Docs ↗
“Message retention 24 hours (non-configurable) 4 days default, configurable up to 14 days”
Read 2026-09-13 · official pricing · Report a correction
- QStash Pricing — Upstash ↗
“Max DLQ Retention 3 days 7 days 30 days 3 months Custom”
Read 2026-09-06 · official pricing · Report a correction
Maximum delay
- Cloudflare Queues
- 24 hours, set with delaySeconds when sending or retrying.
- Upstash QStash
- 7 days on the free plan; 1 year on Pay as You Go and unlimited on the fixed plans.
Sources (2) →Sources ↓
- Queues limits — Cloudflare Docs ↗
“visibilityTimeout (pull-based queues) 12 hours delaySeconds (when sending or retrying) 24 hours”
Read 2026-09-13 · official docs · Report a correction
- QStash Pricing — Upstash ↗
“Max Delay 7 days 1 year Unlimited Unlimited Custom”
Read 2026-09-06 · official pricing · Report a correction
When these numbers change, hear about it. Sources are re-checked monthly; a repricing goes out as a short note.
Documented by only one.
These criteria are published by one provider and not the other. An absence here means we have not found a source, not that the feature is missing — except where we say we read the other provider's own page on a given date and it does not state it. Those rows lean, and the provider can correct them with a link.
Questions this comparison answers.
Should I choose Cloudflare Queues or Upstash QStash?
Pick Cloudflare Queues if Workers applications that want a queue with no egress or throughput charges and a retention window measured in days rather than hours.
Pick Upstash QStash if HTTP-first workloads that want scheduling and delay measured in months rather than a day, without running a consumer process.

Comments are hosted by EchoThread, which sets cookies and offers social sign-in. Like the analytics on this site, it does not load until you accept — see the privacy page.