Overview

🌟 Oban Pro is a collection of extensions, compositors, services, and plugins that expand what Oban is capable of while making complex and durable workflows possible.

Get started with installation, learn how to transition from OSS to Pro with adoption, and then explore the full range of Pro features below.

Extensions

Pro Engine

An advanced engine with global concurrency, rate limiting with multiple algorithms, queue partitioning, async execution tracking, unique bulk inserts, and auto insert batching.

Pro Worker

Extend the base worker with execution hooks, structured and encrypted args, output recording, awaiting signals, execution deadlines, variable rate limit weights, chained execution, inline cron scheduling, and more.

Rate Limit

Programmatic API for interacting with rate limits outside of job execution. Check available capacity, manually consume quota, or atomically reserve capacity before performing operations.

Decorator

Define jobs inline using module attributes, turning regular functions into background jobs without writing separate worker modules.

Relay

Insert jobs and await results synchronously from any node, i.e. persistent distributed tasks with automatic result forwarding across the cluster.

Testing

Advanced helpers for integration testing with supervised Oban instances, running workflows synchronously, and making assertions about enqueued jobs.

Composition

Batch

Group related jobs and track overall progress across all nodes, with callbacks when jobs complete, are discarded, or the entire batch finishes.

Chunk

Process jobs atomically in groups based on size or a timeout, with granular error handling (cancel, discard, snooze individual jobs) and optional partitioning.

Workflow

Compose durable workflows from jobs with arbitrary dependencies for sequential, fan-out, and fan-in execution. Supports sub-workflows, cascading functions, context sharing, saga-style compensations, uniqueness constraints, and database-backed tracking.

Services

Cron

Manage cron jobs at runtime with cluster-wide coordination, timezone support, and scheduling guarantees. Insert, update, or delete scheduled jobs without redeploying. Also discovers cron: annotations on Pro workers and decorated functions.

Lifeline

Rescue orphaned jobs without duplicate execution, retry jobs that exhausted attempts, and unstick workflows with missing dependencies.

Pruner

Manage database-backed retention rules at runtime with per-queue, per-worker, and per-state matching. Prune jobs on a cron schedule or archive them for long-term storage and later inspection.

Queues

Start, stop, pause, and configure queues at runtime with changes persisted across restarts. Optionally limit queues to specific nodes.

Plugins

DynamicPrioritizer

Automatically adjust job priorities over time to prevent starvation and ensure all jobs are eventually processed.

DynamicScaler

Auto-scale worker nodes horizontally based on queue depth—scale up during high traffic and back down during lulls.