Upstash QStash vs Temporal
SEPT 2026 auditA comparison of Upstash QStash and Temporal built from values read directly from each provider's own documentation, with the source recorded against every figure.
The short answer
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
Choose Temporal if…
Long-running, stateful workflows where losing execution history is the failure that matters — Temporal keeps event history as first-class storage rather than logs that expire.
Editorial · Palash Bagchi · approved
Consider something else if…
- 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.
- Temporal: Entry is $100 a month before any usage, and the unit is an Action, which does not map onto messages or task runs — budgeting requires modelling your workflows, not counting jobs.
5 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.
Upstash QStash 0
Temporal 0
At a glance.
| Criterion | Upstash QStash | Temporal |
|---|---|---|
| Pricing | ||
| Free tier | Yes | Yes |
| Pricing model | 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. | Per Action, with storage billed separately and split between open and closed workflows. Plans buy SLA tier and support response rather than volume — Essentials is 99.9% with one business day P0 response, Business adds scale. An open-source self-hosted edition runs the same service on your own infrastructure. |
| Queues | ||
| Included per month | 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. | 1,000,000 Actions a month on Essentials and 2.5 million on Business. An Action is Temporal's own unit — a workflow operation — and is not comparable to a message, an operation or an execution elsewhere in this category. |
| Maximum message size | 1 MB on the free plan, 10 MB on Pay as You Go and 50 MB on the fixed plans. | 2 MB maximum payload per request (each Workflow/Activity argument or return value); 4 MB per Event History transaction, non-configurable. |
| Message retention | 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. | Storage rather than a time window: 1 GB of active storage for open workflows and 40 GB retained for closed ones on Essentials, 2.5 GB active on Business. Temporal keeps workflow event history, so retention is bounded by bytes rather than by days — recorded without a magnitude because it is not the quantity this criterion ranks. |
| Maximum delay | 7 days on the free plan; 1 year on Pay as You Go and unlimited on the fixed plans. | Timers (durable sleeps) may run up to 100 years in Temporal Cloud. |
Where they differ.
Pricing model
- 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.
- Temporal
- Per Action, with storage billed separately and split between open and closed workflows. Plans buy SLA tier and support response rather than volume — Essentials is 99.9% with one business day P0 response, Business adds scale. An open-source self-hosted edition runs the same service on your own infrastructure.
Sources (2) →Sources ↓
- 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
- Pricing — Temporal ↗
“Cloud platform 99.9% SLA, 99.99% HA options [...] Essentials support with 1 business day P0 response time [...] Host It Yourself Open Source Temporal Self-Hosted [...] Temporal Service Temporal SDKs Temporal CLI Temporal UI Community Support”
Read 2026-09-06 · official pricing
Included per month
- 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.
- Temporal
- 1,000,000 Actions a month on Essentials and 2.5 million on Business. An Action is Temporal's own unit — a workflow operation — and is not comparable to a message, an operation or an execution elsewhere in this category.
Sources (2) →Sources ↓
- 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
- Pricing — Temporal ↗
“Essentials Starting at $100/mo. [...] 1 M Actions 1 GB Active Storage 40 GB Retained Storage [...] Business [...] 2.5 M Actions 2.5 GB Active Storage”
Read 2026-09-06 · official pricing
Maximum message size
1 MB on the free plan, 10 MB on Pay as You Go and 50 MB on the fixed plans.
2 MB maximum payload per request (each Workflow/Activity argument or return value); 4 MB per Event History transaction, non-configurable.
Sources (2) →Sources ↓
- QStash Pricing — Upstash ↗
“Max Message Size 1 MB 10 MB 50 MB 50 MB Custom”
Read 2026-09-06 · official pricing
- Limits - Temporal Cloud | Temporal Documentation ↗
“The max payload for a single request is 2 MB. The max size limit for any given Event History transaction is 4 MB. This limit is non-configurable for Temporal Cloud.”
Read 2026-09-13 · official docs
Message retention
- 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.
- Temporal
- Storage rather than a time window: 1 GB of active storage for open workflows and 40 GB retained for closed ones on Essentials, 2.5 GB active on Business. Temporal keeps workflow event history, so retention is bounded by bytes rather than by days — recorded without a magnitude because it is not the quantity this criterion ranks.
Sources (2) →Sources ↓
- QStash Pricing — Upstash ↗
“Max DLQ Retention 3 days 7 days 30 days 3 months Custom”
Read 2026-09-06 · official pricing
- Pricing — Temporal ↗
“EVENT HISTORY AND RETENTION Storage Temporal stores workflow event history as Active storage for open workflows and Retained Storage for closed workflows [...] 1 GB Active Storage 40 GB Retained Storage”
Read 2026-09-06 · official pricing
Maximum delay
- Upstash QStash
- 7 days on the free plan; 1 year on Pay as You Go and unlimited on the fixed plans.
- Temporal
- Timers (durable sleeps) may run up to 100 years in Temporal Cloud.
Sources (2) →Sources ↓
- QStash Pricing — Upstash ↗
“Max Delay 7 days 1 year Unlimited Unlimited Custom”
Read 2026-09-06 · official pricing
- Limits - Temporal Cloud | Temporal Documentation ↗
“Timer duration limit Timers have a maximum duration of 100 years in Temporal Cloud.”
Read 2026-09-13 · official docs
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.
Questions this comparison answers.
Should I choose Upstash QStash or Temporal?
Pick Upstash QStash if HTTP-first workloads that want scheduling and delay measured in months rather than a day, without running a consumer process.
Pick Temporal if Long-running, stateful workflows where losing execution history is the failure that matters — Temporal keeps event history as first-class storage rather than logs that expire.
