Upstash QStash vs Inngest
SEPT 2026 auditA comparison of Upstash QStash and Inngest 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 Inngest if…
Multi-step workflows that need durable execution and retries between steps, rather than a bare queue you write a consumer for.
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.
- Inngest: Every step is a billable execution, so a three-step workflow costs three times what the run count implies, and the free plan allows five concurrent steps.
Neither quite fits? Every other option, ranked by iScore: Upstash QStash alternatives · Inngest alternatives
7 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
Inngest 0
At a glance.
| Criterion | Upstash QStash | Inngest |
|---|---|---|
| Pricing | ||
| Free tier | Yes | Yes |
| Kind of free offer | Free tier | Free tier |
| What the free plan includes | 1,000 messages a day. | 50,000 executions and 500,000 events ingested a month with 5 concurrent steps, no credit card required. |
| 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 execution, where a step counts the same as a run, plus separate meters for events ingested, span data, scores and realtime connections. The pricing page ships a calculator because the execution count is not the run count. |
| 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. | 50,000 executions a month on the free Hobby plan and 1,000,000 on Pro, pay-as-you-go to 20M. An execution is one function run or one step, so a run with two steps counts as three. |
| Maximum message size | 1 MB on the free plan, 10 MB on Pay as You Go and 50 MB on the fixed plans. | 4 MiB per step-returned payload; 32 MiB total function run state; 10 MiB hard cap per event batch. |
| 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. | Queue depth rather than a time window: 100,000 queued items on the free plan and 1,000,000 or more on Pro. Trace retention is 7 days on Pro and 90 on Enterprise. |
| Maximum delay | 7 days on the free plan; 1 year on Pay as You Go and unlimited on the fixed plans. | Step sleeps up to 1 year on paid plans; the free plan supports sleeps up to 7 days. |
| Dead letter queue | Supported | Not supported — No dead-letter queue; failed runs stay in the dashboard and are re-run in bulk with Replay. |
Where they differ.
What the free plan includes
- Upstash QStash
- 1,000 messages a day.
- Inngest
- 50,000 executions and 500,000 events ingested a month with 5 concurrent steps, no credit card required.
Sources (2) →Sources ↓
- QStash Pricing — Upstash ↗
“Free $0 [...] Messages per Day 1,000”
Read 2026-09-13 · official pricing · Report a correction
- Pricing — Inngest ↗
“Hobby [...] $0/mo No credit card required [...] 50k executions [...] 5 concurrent steps [...] 500k events ingested”
Read 2026-09-13 · official pricing · Report a correction
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.
- Inngest
- Per execution, where a step counts the same as a run, plus separate meters for events ingested, span data, scores and realtime connections. The pricing page ships a calculator because the execution count is not the run count.
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 · Report a correction
- Pricing — Inngest ↗
“TOTAL EXECUTIONS PER MONTH (30,000 runs × 2 steps per run) + 30,000 runs = 90,000 executions [...] 500 MB span data ingested [...] 10K scores [...] 500k events ingested [...] 50 realtime connections”
Read 2026-09-06 · official pricing · Report a correction
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.
- Inngest
- 50,000 executions a month on the free Hobby plan and 1,000,000 on Pro, pay-as-you-go to 20M. An execution is one function run or one step, so a run with two steps counts as three.
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 · Report a correction
- Pricing — Inngest ↗
“50k executions [...] 1M executions included Pay as you go up to 20M [...] (30,000 runs × 2 steps per run) + 30,000 runs = 90,000 executions [...] A single durable function run or step execution”
Read 2026-09-06 · official pricing · Report a correction
Maximum message size
1 MB on the free plan, 10 MB on Pay as You Go and 50 MB on the fixed plans.
4 MiB per step-returned payload; 32 MiB total function run state; 10 MiB hard cap per event batch.
Sources (2) →Sources ↓
- QStash Pricing — Upstash ↗
“Max Message Size 1 MB 10 MB 50 MB 50 MB Custom”
Read 2026-09-06 · official pricing · Report a correction
- Inngest usage limits - Inngest Documentation ↗
“Step-returned payload size 4MiB Applies to data returned by a step. Function run state size 32MiB Includes event data, step data, function return data, and internal metadata.”
Read 2026-09-13 · official docs · Report a correction
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.
- Inngest
- Queue depth rather than a time window: 100,000 queued items on the free plan and 1,000,000 or more on Pro. Trace retention is 7 days on Pro and 90 on Enterprise.
Sources (2) →Sources ↓
- QStash Pricing — Upstash ↗
“Max DLQ Retention 3 days 7 days 30 days 3 months Custom”
Read 2026-09-06 · official pricing · Report a correction
- Pricing — Inngest ↗
“100k queue depth [...] 1M+ queue depth [...] Granular tracing, metrics, alerts + 7 day trace retention [...] Advanced tracing, metrics, alerts + 90 day trace retention”
Read 2026-09-06 · official pricing · Report a correction
Maximum delay
- Upstash QStash
- 7 days on the free plan; 1 year on Pay as You Go and unlimited on the fixed plans.
- Inngest
- Step sleeps up to 1 year on paid plans; the free plan supports sleeps up to 7 days.
Sources (2) →Sources ↓
- QStash Pricing — Upstash ↗
“Max Delay 7 days 1 year Unlimited Unlimited Custom”
Read 2026-09-06 · official pricing · Report a correction
- Inngest usage limits - Inngest Documentation ↗
“Step sleep duration Up to 1 year Free plan supports sleeps up to 7 days.”
Read 2026-09-13 · official docs · Report a correction
Dead letter queue
- Upstash QStash
- Supported
- Inngest
- Not supported — No dead-letter queue; failed runs stay in the dashboard and are re-run in bulk with Replay.
Sources (2) →Sources ↓
- QStash Pricing — Upstash ↗
“Max DLQ Retention 3 days 7 days 30 days 3 months Custom”
Read 2026-09-06 · official pricing · Report a correction
- Function Replay | Re-run Failed Runs in Bulk - Inngest Docs ↗
“The recovery flow in other systems may require dead-letter queues or some other form of manual intervention. With Replay, you can replay functions in bulk from the Inngest dashboard”
Read 2026-09-13 · official docs · 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 Upstash QStash or Inngest?
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 Inngest if Multi-step workflows that need durable execution and retries between steps, rather than a bare queue you write a consumer for.

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.