Overview
Oban is a background job library for Elixir created in 2019 by Parker Selbert, which runs its queue inside your SQL database: PostgreSQL, MySQL or SQLite3. Enqueuing a job can be part of the same transaction as other changes, and jobs are backed up with the rest of your data. Unlike most queues, Oban keeps completed job records for metrics and inspection.
Queues are isolated with their own concurrency limits, each job runs in its own process, and queues can be paused, resumed and scaled at runtime across all nodes. Scheduled jobs, cron, retries with backoff, job cancellation mid-execution and uniqueness are part of the free Apache 2.0 library.
Oban Pro, at $150 a month (or $1,620 a year) per application with unlimited nodes, adds durable workflows, global concurrency and rate limits, queue partitioning and email support; it is available for Elixir or Python. Enterprise bundles several applications and adds invoicing and enterprise support.
Pricing and plans
| Plan | Price | What you get |
|---|---|---|
| Open Source | Free | Reliable jobs, scheduled jobs and cron, community support |
| Pro | $150/mo, or $1,620/yr | Per application, unlimited nodes; durable workflows, global and rate limiting, queue partitioning, email support |
| Enterprise | Custom | Application bundles, Elixir and Python included, invoicing, enterprise support |
What it does
- SQL-backed queue
- Jobs live in PostgreSQL, MySQL or SQLite3, inserted transactionally with your data.
- Isolated queues and jobs
- Each queue has its own concurrency, and each job runs in a dedicated process.
- Runtime queue control
- Pause, resume, scale and cancel across all nodes, even without distributed Erlang.
- Cron and scheduled jobs
- Built-in cron plugin and future scheduling in the open-source version.
- Job history
- Completed jobs are retained for metrics and inspection until pruned.
- Pro workflows and limits
- Durable workflows, global and rate limiting and queue partitioning in Oban Pro.
Strengths and limitations
Strengths
- No extra infrastructure beyond your database
- Transactional enqueueing and job history
- Cron included free
- Unlimited nodes per Pro licence
Limitations
- Workflows, global limits, rate limiting and partitioning are Pro-only
- Pro is licensed per application, with no free trial
- Job load and history share your application database
- Primarily an Elixir tool; Python support is newer
Who it suits
Good for
- Elixir and Phoenix applications
- Teams wanting job history and transactional enqueueing
- Apps on PostgreSQL, MySQL or SQLite
Look elsewhere if
- Stacks outside Elixir or Python
- Queues with volumes that would strain the primary database
Alternatives to Oban
| Tool | From | Free option | Stages |
|---|---|---|---|
| BullMQ Redis-based job queue library | $139/mo | ||
| DBOS Postgres-backed durable workflow library | $99/mo | ||
| Sidekiq Redis-based background job library for Ruby | $99/mo | ||
| Hangfire Background job library for .NET | $500/yr | ||
| Windmill Open-source job orchestrator, workflow engine and internal-tool platform | $10/mo | Free tier | |
| Celery Distributed task queue for Python | — |
Questions
Is Oban free?
Yes. Oban is Apache 2.0 open source; Oban Pro is a paid extension.
How much does Oban Pro cost?
$150 a month, or $1,620 a year, per application with unlimited nodes.
Which databases does Oban support?
PostgreSQL, MySQL and SQLite3.
Does Oban support cron jobs?
Yes, scheduled jobs and cron are in the free open-source version.
Sources read for this page