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.