vs

Upstash QStash vs River: Which is Better in 2026?

Background Jobs & Workflows

Choosing between Upstash QStash and River? Both are popular background jobs & workflows tools. Below we compare them on pricing, free tiers, features, and pros & cons so you can pick the right fit for your stack.

Upstash QStash is for: Serverless and edge apps that need delayed HTTP calls, retries and cron schedules without running a queue or worker.

River is for: Go teams on PostgreSQL who want jobs enqueued in the same transaction as their data.

Quick verdict

There’s no single winner; pick on your constraint. Choose Upstash QStash if your app runs on serverless functions and you need work to happen later or on a schedule. Choose River if your app is written in Go and uses Postgres.

Upstash QStash vs River — Side by Side

Upstash QStashRiver
CategoryBackground Jobs & WorkflowsBackground Jobs & Workflows
What it isServerless HTTP message queue and schedulerOpen-source job queue library
LanguagesAny (delivers HTTP requests to your endpoint)Go, Java, Ruby, Rust, TypeScript
What it runs onUpstash managed serviceYour Postgres or SQLite
How you payPer message, or fixed monthly plansFree (MPL-2.0); optional Pro subscription
Free access1,000 messages a dayFull open-source library
PricingFree · paid from $180/moFree · paid from $125/mo
Starting priceFree tier availableFree tier available
Free tier
Rating4.44.4
Best forBackground Jobs & Workflows — serverless, HTTP scheduling, cronBackground Jobs & Workflows — Go, Postgres, transactional jobs

Pros & Cons

  • Zero infrastructure to manage
  • Built for serverless and edge functions
  • Built-in cron scheduling
  • Cheap at low volume
  • HTTP-delivery model only
  • Tied to the Upstash platform
  • Less suited to heavy compute jobs
  • Each retry is billed as a message
  • Idiomatic Go with strong typing
  • Transactional enqueue on Postgres
  • No separate broker needed
  • Active development
  • Go-first; other languages are newer
  • Newer than incumbents
  • Needs Postgres or SQLite

Key Features Compared

Upstash QStash

  • Free: 1,000 messages a day, 10 active schedules and 1 MB maximum message size
  • Pay as you go: $1 per 100,000 messages, with 1,000 active schedules included
  • Fixed 1M plan: $180 a month for 1M messages a day
  • Every delivery attempt, including each retry, is billed as a message
  • Pay as you go allows delays up to 1 year and HTTP responses up to 2 hours
  • Dead-letter queue kept 3 days on Free and 7 days on Pay as you go

River

  • Open source under the MPL-2.0 license
  • Enqueues jobs transactionally in your existing database
  • Runs on Postgres and SQLite
  • Background jobs for Go, Java, Ruby, Rust and TypeScript, per the project site
  • River Pro: $125 a month; annual billing saves $300
  • Pro adds workflows, sequences, batching, global concurrency limits, a dead letter queue and encrypted jobs

Choose Upstash QStash if…

  • Your app runs on serverless functions and you need work to happen later or on a schedule.
  • You want to pay per message with nothing to run.
  • Your jobs fit an HTTP request to an endpoint you already have.

Choose River if…

  • Budget is tight — paid plans start lower ($125/mo vs $180/mo).
  • Your app is written in Go and uses Postgres.
  • You want a job to exist only if the transaction that created it commits.
  • You want workflows and concurrency limits for a flat monthly fee.

Frequently Asked Questions

Is Upstash QStash better than River?⌄

There’s no single winner; pick on your constraint. Choose Upstash QStash if your app runs on serverless functions and you need work to happen later or on a schedule. Choose River if your app is written in Go and uses Postgres.

What is the difference between Upstash QStash and River?⌄

What it is — Upstash QStash: Serverless HTTP message queue and scheduler. River: Open-source job queue library. Languages — Upstash QStash: Any (delivers HTTP requests to your endpoint). River: Go, Java, Ruby, Rust, TypeScript. What it runs on — Upstash QStash: Upstash managed service. River: Your Postgres or SQLite. How you pay — Upstash QStash: Per message, or fixed monthly plans. River: Free (MPL-2.0); optional Pro subscription. Free access — Upstash QStash: 1,000 messages a day. River: Full open-source library.

Upstash QStash vs River: which is cheaper?⌄

Upstash QStash pricing: Free · paid from $180/mo. River pricing: Free · paid from $125/mo. Confirm current pricing on each tool's official site, as plans change.

Which is rated higher, Upstash QStash or River?⌄

In our catalog, Upstash QStash rates 4.4 out of 5 and River rates 4.4 out of 5 — they are evenly matched.

When should I skip both Upstash QStash and River?⌄

Skip Upstash QStash if your jobs have several steps that should each retry on their own. Inngest and Trigger.dev handle step state. Skip River if your app is in Node.js. Graphile Worker takes the same Postgres approach.

Sources · tool facts checked November 2026

  1. 1.QStash pricing (Upstash)upstash.com
  2. 2.Riverriverqueue.com
  3. 3.River Proriverqueue.com

See more options in our guide to the best background jobs & workflows tools for startups.

Still not sure which to pick?

Get a free, AI-powered tech stack — including the best background jobs & workflows pick for your budget and team — in 60 seconds.

Build my stack free