A robust, database-backed job processing library for Elixir with PostgreSQL, MySQL, and SQLite3 support.
Oban is a robust background job processing library for Elixir that uses PostgreSQL, MySQL, or SQLite3 as its backend. It provides reliable, observable job execution with enterprise-grade features like unique jobs, scheduled jobs, and historic metrics retention. It solves the problem of managing asynchronous tasks in Elixir applications with strong consistency and minimal external dependencies.
Elixir developers building applications that require reliable background job processing, especially those already using PostgreSQL, MySQL, or SQLite3 as their primary database.
Developers choose Oban for its tight integration with SQL databases, which reduces system dependencies and simplifies backups. Its focus on reliability, observability, and retention of job data for metrics sets it apart from other job processing tools that delete jobs after completion.
💎 Robust job processing in Elixir, backed by modern PostgreSQL, SQLite3, and MySQL
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages existing SQL databases for job persistence, reducing external dependencies and simplifying backups, as highlighted in the 'Fewer Dependencies' advantage.
Enables atomic enqueuing of jobs alongside other database operations, ensuring data integrity and consistency, a key feature mentioned under 'Transactional Control'.
Jobs are retained indefinitely after processing for inspection and analytics, preventing data loss and providing deep observability, core to Oban's philosophy.
Prevents duplicate jobs with fine-grained uniqueness across arguments, queues, and workers, as described in the 'Unique Jobs' section.
Emits job life-cycle events via Telemetry for easy logging and monitoring, enhancing observability without additional plugins.
Ties the job queue to a SQL database, making it unsuitable for NoSQL-based applications or those preferring Redis for faster, in-memory processing.
Key enterprise features like workflows, batches, and global rate limiting are only available in Oban Pro, a paid extension, limiting the core library's capabilities.
Requires configuring database connections and Ecto migrations, which can be challenging for teams not already using Elixir's Ecto ecosystem.
Database-backed queueing can introduce latency compared to dedicated message brokers, especially under extreme concurrency, as noted in performance trade-offs.