Overview
🌟 Oban Pro is a collection of extensions, compositors, and plugins that expand what Oban is capable of while making complex 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
Smart 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, execution deadlines, variable rate limit weights, chained execution, 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 jobs with arbitrary dependencies for sequential, fan-out, and fan-in execution. Supports sub-workflows, cascading functions, context sharing, uniqueness constraints, and database-backed tracking.
Plugins
DynamicCron
Manage cron jobs at runtime with cluster-wide coordination, timezone support, and scheduling guarantees. Insert, update, or delete scheduled jobs without redeploying.
DynamicLifeline
Rescue orphaned jobs without duplicate execution, retry jobs that exhausted attempts, and unstick workflows with missing dependencies.
DynamicPrioritizer
Automatically adjust job priorities over time to prevent starvation and ensure all jobs are eventually processed.
DynamicPruner
Delete completed jobs on a cron schedule with per-queue, per-worker, and per-state overrides for fine-grained retention policies.
DynamicQueues
Start, stop, pause, and configure queues at runtime with changes persisted across restarts. Optionally limit queues to specific nodes.
DynamicScaler
Auto-scale worker nodes horizontally based on queue depth—scale up during high traffic and back down during lulls.