# Azure Queue Storage vs Upstash QStash

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

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

## At a glance

| Criterion | Azure Queue Storage | Upstash QStash |
| --- | --- | --- |
| Pricing model | 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. | 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. |
| Included per month | 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. | 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 | 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. | 1 MB on the free plan, 10 MB on Pay as You Go and 50 MB on the fixed plans. |
| Message retention | 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. | 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 | 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. | 7 days on the free plan; 1 year on Pay as You Go and unlimited on the fixed plans. |

## Where they differ

### Pricing model

- 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))
- 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. ([source](https://upstash.com/pricing/qstash))

### Included per month

- 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))
- 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. ([source](https://upstash.com/pricing/qstash))

### Maximum message size

- 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))
- Upstash QStash: 1 MB on the free plan, 10 MB on Pay as You Go and 50 MB on the fixed plans. ([source](https://upstash.com/pricing/qstash))

### Message retention

- 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))
- Upstash QStash: 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. ([source](https://upstash.com/pricing/qstash))

### Maximum delay

- 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))
- Upstash QStash: 7 days on the free plan; 1 year on Pay as You Go and unlimited on the fixed plans. ([source](https://upstash.com/pricing/qstash))

## Which should you choose?

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.

Pick Upstash QStash if HTTP-first workloads that want scheduling and delay measured in months rather than a day, without running a consumer process.

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.

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

## Documented by only one

- Free tier: Upstash QStash: Yes
- Dead letter queue: Upstash QStash: Supported
- SOC 2: Azure Queue Storage: Listed among Azure's compliance offerings (SOC 1, SOC 2, SOC 3) on Microsoft's own compliance documentation — a platform-wide list, not scoped to this specific service.
- ISO 27001: Azure Queue Storage: Listed among Azure's compliance offerings (ISO 27001) on Microsoft's own compliance documentation — a platform-wide list, not scoped to this specific service.
- HIPAA: Azure Queue Storage: Listed among Azure's compliance offerings (HIPAA) on Microsoft's own compliance documentation — a platform-wide list, not scoped to this specific service.
- PCI DSS: Azure Queue Storage: Listed among Azure's compliance offerings (PCI DSS) on Microsoft's own compliance documentation — a platform-wide list, not scoped to this specific service.

## Questions this comparison answers

**Should I choose Azure Queue Storage or Upstash QStash?**

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.
Pick Upstash QStash if HTTP-first workloads that want scheduling and delay measured in months rather than a day, without running a consumer process.
