Oban
An Ecto and OTP job framework with queues, retries and telemetry.
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.
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
DocumentedThe 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
DocumentedOban.insert integrates with Ecto.Multi so enqueue and other database changes share one commit.
Crash recovery & retries
QualifiedAt-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
DocumentedFuture scheduling and cron-like periodic jobs are part of OSS. Pro Dynamic plugins add runtime schedule and queue management.
Uniqueness / deduplication
QualifiedOSS 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 requiredThe 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
DocumentedOban 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
Insert uniqueness is not concurrent-execution exclusion.
Uniqueness scopeGlobal rate/concurrency controls belong to Pro; the current official dashboard itself is open source.
Open source and commercial scope Operator interfaceThis profile covers the Elixir PostgreSQL package although the ecosystem also has a Python implementation and alternate SQL engines.
Recovery and retries Recovery and retries