# Cloudflare Queues vs Azure Queue Storage

Canonical: https://inetgeek.com/compare/cloudflare-queues-vs-azure-queue-storage/

Every value below is read from Cloudflare Queues's and Azure Queue Storage's own documentation. See https://inetgeek.com/methodology/ for how.

## At a glance

| Criterion | Cloudflare Queues | Azure Queue Storage |
| --- | --- | --- |
| 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 10,000 operations plus stored data, with the rate set by redundancy: LRS Class 1 operations are $0.004 per 10,000, ZRS and GRS cost more for the same call. There is no plan fee and no included allowance. |
| 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. | None included — every operation is billed. Class 1 operations are $0.004 per 10,000 on LRS in East US, which is $0.40 per million, matching Amazon SQS's standard rate exactly. |
| Maximum message size | 128 KB per message, with roughly 100 bytes of that taken by internal metadata. Messages above 64 KB are billed as multiple operations. | 64 KB per message. A queue may hold millions of messages, bounded only by the storage account's capacity rather than a queue-level ceiling. |
| Message retention | 4 days by default on Workers Paid, configurable up to 14 days. Workers Free is fixed at 24 hours. | Messages in the queue are billed as stored data at $0.045 per GB-month on LRS, rather than granted as a retention window. Azure charges for depth, not for time. |
| Maximum delay | 24 hours, set with delaySeconds when sending or retrying. | Time-to-live defaults to seven days and can be set to any positive number, or to -1 for a message that never expires — the only queue here with an unbounded option. |

## Where they differ

### 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. ([source](https://developers.cloudflare.com/queues/platform/pricing/))
- Azure Queue Storage: Per 10,000 operations plus stored data, with the rate set by redundancy: LRS Class 1 operations are $0.004 per 10,000, ZRS and GRS cost more for the same call. There is no plan fee and no included allowance. ([source](https://prices.azure.com/api/retail/prices))

### 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. ([source](https://developers.cloudflare.com/queues/platform/pricing/))
- Azure Queue Storage: None included — every operation is billed. Class 1 operations are $0.004 per 10,000 on LRS in East US, which is $0.40 per million, matching Amazon SQS's standard rate exactly. ([source](https://prices.azure.com/api/retail/prices))

### Maximum message size

- Cloudflare Queues: 128 KB per message, with roughly 100 bytes of that taken by internal metadata. Messages above 64 KB are billed as multiple operations. ([source](https://developers.cloudflare.com/queues/platform/limits/))
- Azure Queue Storage: 64 KB per message. A queue may hold millions of messages, bounded only by the storage account's capacity rather than a queue-level ceiling. ([source](https://learn.microsoft.com/en-us/azure/storage/queues/storage-queues-introduction))

### Message retention

- Cloudflare Queues: 4 days by default on Workers Paid, configurable up to 14 days. Workers Free is fixed at 24 hours. ([source](https://developers.cloudflare.com/queues/platform/pricing/))
- Azure Queue Storage: Messages in the queue are billed as stored data at $0.045 per GB-month on LRS, rather than granted as a retention window. Azure charges for depth, not for time. ([source](https://prices.azure.com/api/retail/prices))

### Maximum delay

- Cloudflare Queues: 24 hours, set with delaySeconds when sending or retrying. ([source](https://developers.cloudflare.com/queues/platform/limits/))
- Azure Queue Storage: Time-to-live defaults to seven days and can be set to any positive number, or to -1 for a message that never expires — the only queue here with an unbounded option. ([source](https://learn.microsoft.com/en-us/azure/storage/queues/storage-queues-introduction))

## Which should you choose?

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 Azure Queue Storage if Azure-resident systems that want a queue billed like storage — operations plus depth, no plan to choose and no capacity to provision.

Consider something else: 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.

Consider something else: Azure Queue Storage — Queued messages are billed as stored data, so a backlog costs money by the gigabyte-month, and there is no free allowance at all where SQS gives a million requests a month.

## Documented by only one

- Free tier: Cloudflare Queues: Yes
- Concurrency: Cloudflare Queues: 250 concurrent consumer invocations, push-based only, with per-queue throughput capped at 5,000 messages a second and a 25 GB backlog.
- Dead letter queue: Cloudflare Queues: Supported

## Questions this comparison answers

**Should I choose Cloudflare Queues or Azure Queue Storage?**

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 Azure Queue Storage if Azure-resident systems that want a queue billed like storage — operations plus depth, no plan to choose and no capacity to provision.
