# Google Cloud Pub/Sub vs Upstash QStash

Canonical: https://inetgeek.com/compare/google-pubsub-vs-qstash/

Every value below is read from Google Cloud Pub/Sub's and Upstash QStash's own documentation. See https://inetgeek.com/methodology/ for how.

## At a glance

| Criterion | Google Cloud Pub/Sub | Upstash QStash |
| --- | --- | --- |
| Free tier | Yes | Yes |
| Pricing model | Three meters: throughput at $40 per TiB counting both publish and subscribe, storage at $0.27 per GiB-month for anything retained beyond a day, and data transfer when throughput crosses a zone or region boundary. Pub/Sub Lite is a separate product priced on reserved capacity rather than usage. | 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 | 10 GiB of throughput free per billing account per calendar month, then $40 per TiB. Throughput counts bytes written to a topic plus bytes read from a subscription, so a message published once and read once is billed twice. BigQuery and Cloud Storage subscriptions are $50 per TiB and the 10 GiB does not apply to them; import topics run $50 or $80 per TiB by source. | 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 | Pub/Sub bills on bytes rather than message count; the pricing page states no per-message size ceiling and prices throughput and storage instead. | 1 MB on the free plan, 10 MB on Pay as You Go and 50 MB on the fixed plans. |
| Message retention | Retention is configurable and charged rather than granted: $0.27 per GiB-month for messages a topic is configured to retain, for snapshots, and for a subscription's backlog older than one day. A subscription's default retention is 7 days. | 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. |

## Where they differ

### Pricing model

- Google Cloud Pub/Sub: Three meters: throughput at $40 per TiB counting both publish and subscribe, storage at $0.27 per GiB-month for anything retained beyond a day, and data transfer when throughput crosses a zone or region boundary. Pub/Sub Lite is a separate product priced on reserved capacity rather than usage. ([source](https://cloud.google.com/pubsub/pricing))
- 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

- Google Cloud Pub/Sub: 10 GiB of throughput free per billing account per calendar month, then $40 per TiB. Throughput counts bytes written to a topic plus bytes read from a subscription, so a message published once and read once is billed twice. BigQuery and Cloud Storage subscriptions are $50 per TiB and the 10 GiB does not apply to them; import topics run $50 or $80 per TiB by source. ([source](https://cloud.google.com/pubsub/pricing))
- 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

- Google Cloud Pub/Sub: Pub/Sub bills on bytes rather than message count; the pricing page states no per-message size ceiling and prices throughput and storage instead. ([source](https://cloud.google.com/pubsub/pricing))
- 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

- Google Cloud Pub/Sub: Retention is configurable and charged rather than granted: $0.27 per GiB-month for messages a topic is configured to retain, for snapshots, and for a subscription's backlog older than one day. A subscription's default retention is 7 days. ([source](https://cloud.google.com/pubsub/pricing))
- 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))

## Which should you choose?

Pick Google Cloud Pub/Sub if Google Cloud systems that want messaging without capacity planning — throughput is metered rather than provisioned, and 10 GiB a month costs nothing.

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: Google Cloud Pub/Sub — Throughput counts bytes both in and out, so a message read once is billed twice, and retention is a storage charge rather than an included window — the headline $40 per TiB is not the whole bill.

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

- Ingest price per GB: Google Cloud Pub/Sub: $40 per TiB, which is $0.039 per GiB, for standard publish and subscribe throughput in every Google Cloud region.
- Maximum delay: Upstash QStash: 7 days on the free plan; 1 year on Pay as You Go and unlimited on the fixed plans.
- Dead letter queue: Upstash QStash: Supported

## Questions this comparison answers

**Should I choose Google Cloud Pub/Sub or Upstash QStash?**

Pick Google Cloud Pub/Sub if Google Cloud systems that want messaging without capacity planning — throughput is metered rather than provisioned, and 10 GiB a month costs nothing.
Pick Upstash QStash if HTTP-first workloads that want scheduling and delay measured in months rather than a day, without running a consumer process.
