← All systems
Job frameworkAdapter in this repo

Oban

An Ecto and OTP job framework with queues, retries and telemetry.

API / SDK surfaceElixir
Inspected snapshot2.24.2 · source snapshot
Sources checked2026-10-23
License at snapshotApache-2.0

View pinned source / version 722f020c0fc1 · Release version comes from official Hex package metadata, not the older GitHub latest-release record. Scope is the Elixir OSS package; the separate Python implementation is not profiled here.

What this system is built around

An Ecto and OTP job framework with queues, retries and telemetry.

A useful starting point

An Elixir/OTP and Ecto-oriented job framework with retained job history, isolated queues, scheduled work and telemetry. Choose queue limits and engine deliberately when distributing across nodes.

Editorial fit, based on the cited design. Verify against your workload.

Semantics & operating model

Concise claims with their scope intact. “Not verified” means this review did not establish the answer.

Claiming & concurrency

Documented

The PostgreSQL Basic engine claims using FOR UPDATE SKIP LOCKED with a local queue limit. Pro Smart Engine supplies global concurrency, global rate limits and partitioning.

Transactional enqueue

Documented

Oban.insert integrates with Ecto.Multi so enqueue and other database changes share one commit.

Crash recovery & retries

Qualified

At-least-once execution with retries/backoff and a configured attempt limit. Abandoned executing jobs require a configured rescue service such as OSS Oban.Lifeline; its age-based policy can rescue genuinely running jobs too. Pro Lifeline offers more accurate rescue.

Delayed & recurring work

Documented

Future scheduling and cron-like periodic jobs are part of OSS. Pro Dynamic plugins add runtime schedule and queue management.

Uniqueness / deduplication

Qualified

OSS insertion-time uniqueness uses transactional locks and queries and can race in some circumstances; it does not serialize execution. Pro Smart Engine uses unique constraints for stronger guarantees.

Postgres extension required

Not required

The PostgreSQL engine is an Elixir/Ecto library and schema migrations; documented prerequisites include PostgreSQL 14+, Elixir 1.15+ and Erlang 24+, not a custom queue extension.

Operator interface

Documented

Oban Web is now free and open source under Apache-2.0, with an embedded Phoenix LiveView dashboard and an optional standalone image. It can expose paid Pro controls when Pro is installed. Older commercially licensed Web releases are not the current distribution.

Tradeoffs to carry into a test