Background jobs, queues and workflows

Background job tools run work outside a web request, with scheduling and retries.

Use for: AI tasks, file processing, email batches and scheduled work.

Amazon SQS Freemium
Amazon SQS homepage

AWS's fully managed message queue with standard and FIFO queues, billed per request with 1 million free requests every month and no minimum fee.

BullMQ Open source
BullMQ homepage

MIT-licensed Redis job queue for Node.js, Bun, Python, Rust, Elixir and PHP, with delays, cron schedulers, retries, rate limits and parent-child flows.

Celery Open source
Celery homepage

Python's long-established distributed task queue, running tasks on worker processes through RabbitMQ, Redis or SQS brokers, with periodic tasks, rate limits and task chaining.

Cloudflare Queues Freemium
Cloudflare Queues homepage

Managed message queue built into Cloudflare Workers, billed per 64 KB operation with no egress charges, and free for 10,000 operations a day since February 2026.

Cloudflare Workflows Freemium
Cloudflare Workflows homepage

Durable multi-step workflows that run on Cloudflare Workers, with retried steps, sleeps up to a year and event waits, billed per step, CPU time and stored state.

DBOS Open source
DBOS homepage

MIT-licensed library that adds durable workflows, queues and scheduled jobs to your app by checkpointing steps in Postgres, with no separate orchestrator to run.

Faktory Open source
Faktory homepage

Standalone job server from the author of Sidekiq that any language can push jobs to and fetch jobs from, with retries and a web UI; AGPL with a paid Enterprise edition.

Google Cloud Freemium
Google Cloud Tasks homepage

Google Cloud's managed task queue that pushes each task to an HTTP endpoint or App Engine with retries, rate limits and scheduling, with 1 million free operations a month.

Graphile Open source
Graphile Worker homepage

MIT-licensed Node.js job queue that uses only PostgreSQL, starting jobs in milliseconds via LISTEN/NOTIFY, with retries, cron and scheduled jobs.

Hangfire Open source
Hangfire homepage

Background job framework for .NET that runs fire-and-forget, delayed, recurring (cron) and continuation jobs inside your app, stored in SQL Server or Redis, with a built-in dashboard.

Hatchet Open source
Hatchet homepage

MIT-licensed task queue and durable workflow engine built on Postgres, with a cloud offering 1 million free runs a month and per-run pricing after that.

Inngest Freemium
Inngest homepage

Event-driven durable functions platform: wrap code in steps and Inngest handles queues, retries, scheduling and flow control, calling your app over HTTPS.

Laravel Open source
Laravel Horizon homepage

Free MIT package from the Laravel team that manages Redis queue workers from one config file and adds a dashboard for throughput, runtimes, failures and tags.

Oban Open source
Oban homepage

Apache-licensed job processing for Elixir backed by PostgreSQL, MySQL or SQLite, keeping job history for inspection, with Oban Pro adding durable workflows and global limits.

pg-boss Open source
pg-boss homepage

MIT-licensed Node.js job queue on PostgreSQL using SKIP LOCKED, with cron, retries, dead-letter queues, priorities, pub/sub fan-out and an optional dashboard.

Restate Open source
Restate homepage

Low-latency durable execution runtime shipped as one Rust binary with no external database, offering workflows, keyed state, queues and timers, self-hosted or as Restate Cloud.

River Open source
River homepage

Open-source job queue for Go backed by PostgreSQL or SQLite, with transactional enqueueing, periodic and unique jobs and a web UI; River Pro adds workflows and concurrency limits.

Sidekiq Open source
Sidekiq homepage

Ruby's most widely used background job system: multithreaded workers on Redis, free under LGPL, with paid Pro and Enterprise editions adding batches, cron and rate limits.

Solid Queue Open source
Solid Queue homepage

MIT-licensed, database-backed Active Job backend that is the default in new Rails 8 apps, running jobs from MySQL, PostgreSQL or SQLite without Redis.

Temporal Cloud Paid
Temporal Cloud homepage

Managed service for Temporal, the MIT-licensed durable execution engine: workflows written in code survive crashes and deploys, billed per action with no base fee.

Trigger.dev Freemium
Trigger.dev homepage

Open-source TypeScript background task platform that runs your tasks on its own managed workers with no timeouts, billed per run plus per second of compute.

Upstash Freemium
Upstash QStash homepage

HTTP-based message queue and scheduler that delivers messages to your endpoints with retries, delays, cron and dead-letter queue, billed per message.

Vercel Freemium
Vercel Workflows homepage

Durable workflows on Vercel built on the open-source Workflow SDK: mark functions with 'use workflow' and 'use step', billed per state-transition event and data stored.

Windmill Open source
Windmill homepage

AGPLv3 platform that turns scripts in 20+ languages into jobs, cron schedules, workflows and internal apps, with unlimited executions when self-hosted.

Tool Pricing DoesFree allowanceSDKsSelf-host
Amazon SQS aws.amazon.com · EU
Freemium Message queue (standard and FIFO) 1M requests/month All AWS SDKs (JS, Python, Java, Go, .NET, Ruby, PHP...) No
BullMQ bullmq.io · OSS
Open source Job queue, delayed and cron jobs, job flows Unlimited (MIT, self-run Redis) Node.js/Bun, Python, Rust, Elixir, PHP Yes, needs Redis, Valkey or Dragonfly
Celery docs.celeryq.dev · OSS
Open source Task queue, periodic tasks, task chains Unlimited (open source, self-run broker) Python (community clients for Node.js, Go, Rust, PHP) Yes, needs RabbitMQ, Redis or SQS broker
Cloudflare Queues developers.cloudflare.com
Freemium Message queue (push to Workers or HTTP pull) 10,000 operations/day on Workers Free Workers (JavaScript, TypeScript, Python); HTTP pull from any language No
Cloudflare Workflows developers.cloudflare.com
Freemium Durable workflows 3,000 steps/day on Workers Free TypeScript/JavaScript, Python (Workers) No
DBOS dbos.dev · OSS
Open source Durable workflows, queues, scheduled jobs Library free and unlimited; paid console from $99/mo Python, TypeScript, Go, Java Yes, library runs in your app with your Postgres
Faktory contribsys.com · OSS
Open source Job server, scheduled jobs (cron in Enterprise) Unlimited (AGPL, self-hosted) Any via clients: Ruby, Go, JavaScript, Python and others Yes, single Go server (Docker available)
Google Cloud Tasks cloud.google.com · EU
Freemium Task queue with HTTP push, scheduled tasks 1M operations/month Google Cloud client libraries (Node, Python, Go, Java, .NET, Ruby, PHP) No
Graphile Worker worker.graphile.org · OSS
Open source Job queue, cron, scheduled jobs Unlimited (MIT, your Postgres) Node.js/TypeScript (jobs can be added from SQL) Yes, needs PostgreSQL
Hangfire hangfire.io · OSS
Open source Job queue, delayed and recurring (cron) jobs Unlimited (LGPL, your SQL Server) .NET (C#, F#, VB) Yes, needs SQL Server or Redis (Pro)
Hatchet hatchet.run · OSS · EU
Open source Task queue, DAG workflows, durable tasks, cron 2k runs/day (no card) or 1M runs/mo (card) Python, TypeScript, Go, Ruby Yes, MIT, needs Postgres
Inngest inngest.com
Freemium Durable workflows, event-triggered jobs, cron 50k executions/mo, 5 concurrent steps TypeScript, Python, Go, Kotlin/Java Yes, single binary (no vendor support)
Laravel Horizon laravel.com · OSS
Open source Queue worker manager and dashboard (Redis) Unlimited (MIT, your Redis) PHP (Laravel) Yes, needs Redis (not Redis Cluster)
Oban oban.pro · OSS
Open source Job queue, cron, workflows (Pro) Unlimited (Apache 2.0, your database) Elixir; Python (Pro licence available for both) Yes, needs PostgreSQL, MySQL or SQLite
pg-boss pgboss.io · OSS
Open source Job queue, cron, job dependencies Unlimited (MIT, your Postgres) Node.js/TypeScript (SQL for other runtimes) Yes, needs PostgreSQL 13+
Restate restate.dev · EU
Open source Durable workflows, stateful handlers, queues Cloud: 50k actions/mo; self-host free TypeScript, Python, Java, Kotlin, Go, Rust, Ruby Yes, single binary (BSL 1.1 server, MIT SDKs)
River riverqueue.com · OSS
Open source Job queue, periodic jobs, workflows (Pro) Unlimited (MPL 2.0, your database) Go Yes, needs PostgreSQL or SQLite
Sidekiq sidekiq.org · OSS
Open source Job queue, scheduled jobs (cron in Enterprise) Unlimited (LGPL, self-run Redis) Ruby Yes, needs Redis
Solid Queue github.com · OSS
Open source Job queue, delayed and recurring jobs Unlimited (MIT, your database) Ruby (Rails Active Job) Yes, needs MySQL, PostgreSQL or SQLite
Temporal Cloud temporal.io · OSS · EU
Paid Durable workflows, schedules, task queues $150 credit for 90 days (no permanent free tier) Go, Java, Python, TypeScript, .NET, PHP, Ruby, Rust Yes, Temporal server is MIT-licensed
Trigger.dev trigger.dev · OSS
Freemium Durable tasks, queues, cron schedules $5/mo usage credit, 20 concurrent runs TypeScript (Python scripts via extension) Yes, Apache 2.0
Upstash QStash upstash.com · EU
Freemium HTTP queue, cron schedules, workflows 1,000 messages/day, 10 schedules HTTP API; TypeScript and Python SDKs No (local dev server only)
Vercel Workflows vercel.com · EU
Freemium Durable workflows 50k events/mo on Vercel Hobby TypeScript/JavaScript, Python Workflow SDK is open source; managed service is Vercel-only
Windmill windmill.dev · OSS
Open source Job queue, cron, flows, internal apps Self-host unlimited; cloud 1,000 executions/mo Python, TypeScript, Go, Bash, SQL, Rust, PHP, C#, Java and more Yes, AGPLv3 (Docker, Kubernetes, Fargate)

Freemium means a free plan plus paid plans. Open a tool for its plans, prices and sources.

§1

How to choose a job runner

Terms: Background job and queue, Serverless, Self-hosting and open source

  • For a few scheduled tasks, use your host’s cron first. Reach for a job service when you need retries, queues or visibility into failures.
  • On serverless hosts, pick a service that calls your existing endpoints (Inngest, QStash, Trigger.dev) rather than one that needs a worker process running.
  • For long, multi-step processes that must survive crashes, look at durable workflow engines (Temporal, Inngest, Restate).
  • Check how steps and runs are counted on the free tier; one job can be many billable steps.

Questions

Do I need a job queue for a small app?

Often not. A scheduled function on your host covers nightly tasks. A queue earns its place when work fails and must retry, or when requests would otherwise time out.

§2

Pricing changes

  • Temporal Cloud drops the base plan fee for new sign-ups

    Temporal Cloud · source ↗

  • Cloudflare Workflows adds per-step and storage billing

    Cloudflare Workflows · source ↗

  • Cloudflare Queues added to the Workers Free plan

    Cloudflare Queues · source ↗

  • Trigger.dev doubles included concurrency and cuts add-on price

    Trigger.dev · source ↗

  • Higher limits for Queues pull consumers

    Cloudflare Queues · source ↗

All pricing changes →