awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
oban-bg avatar

oban-bg/oban

0
View on GitHub↗
3,812 stars·359 forks·Elixir·apache-2.0·36 viewsoban.pro↗

Oban

Oban is a distributed background job processing system and task scheduler that uses PostgreSQL for transactional job storage and reliable execution across multiple nodes. It serves as a PostgreSQL-backed background worker and job queue, coordinating task execution and concurrency through a relational database to ensure delivery guarantees.

The system differentiates itself through a distributed workflow orchestrator capable of managing multi-step processing pipelines, dependent job sequencing, and shared context. It provides advanced orchestration tools including job batching, chunked processing, and the ability to synchronize distributed tasks and receive results across a cluster.

The platform covers broad capability areas including global rate limit management, cron-based recurring task scheduling, and job queue administration. It also incorporates traffic management via queue partitioning and uniqueness enforcement, alongside monitoring tools for tracking execution metrics and recovering orphaned jobs.

Features

  • Background Job Queues - Provides a distributed background job queue using PostgreSQL for transactional storage and reliable task execution.
  • Database-Backed Deferred Queues - Provides a persistent background job queue utilizing PostgreSQL to ensure transactional guarantees and reliable delivery.
  • Hierarchical Workflows - Coordinates complex sequences of distributed jobs with cumulative context and hierarchical sub-workflows.
  • Database Job Lifecycle Management - Allows enabling, disabling, retrying, or cancelling jobs directly through database operations without code deployment.
  • Workflow Scheduling And Orchestration - Provides a distributed framework for managing complex multi-step job pipelines and data process orchestration.
  • Background Task Schedulers - Inserts tasks into a SQL database for asynchronous execution with transactional reliability guarantees.
  • Workflow Orchestration - Coordinates complex sequences of dependent background jobs that share context and execute in a specific order.
  • Cron Scheduling - Implements a distributed cron-like timer for triggering recurring background jobs across a cluster.
  • Job Schedulers - Automates recurring tasks on a cron-like schedule across multiple nodes while preventing duplicate insertions.
  • Schedule Management - Provides the capability to modify scheduled jobs, timezones, and parameters at runtime across the cluster.
  • Distributed Concurrency Controls - Limits total job execution rates across all nodes using a shared distributed quota system.
  • Background Job Processing - Provides a distributed system for scheduling and executing asynchronous tasks using a SQL database.
  • Concurrency Control - Provides mechanisms to limit parallel job execution through isolated queues.
  • Distributed Job Execution - Distributes background tasks across multiple cluster nodes and tracks completion results.
  • Distributed Recurring Task Scheduling - Manages cron-like jobs that run on a set schedule across multiple nodes without triggering duplicate executions.
  • Distributed Task Schedulers - Provides a cluster-aware scheduler for managing asynchronous tasks, cron jobs, and complex workflow dependencies.
  • Execution Rate Limiters - Enforces global concurrency and rate limits across a cluster to prevent system overload.
  • Job Dependency Coordination - Manages complex asynchronous workflows through parent-child job hierarchies and shared context.
  • Transactional Enqueueing - Wraps job enqueueing within database transactions to ensure tasks are only scheduled if the parent business logic succeeds.
  • Distributed Rate Limiting - Synchronizes request and task limits across a distributed cluster to prevent downstream system overload.
  • Database-Backed Workers - Implements a worker system that leverages PostgreSQL to coordinate job concurrency and rate limiting across nodes.
  • Distributed Cluster Coordination - Synchronizes job state and scheduling across cluster nodes using a shared PostgreSQL database as the source of truth.
  • Job Continuation Chaining - Implements mechanisms for linking dependent asynchronous tasks where child jobs trigger upon parent success.
  • Partitioned - Ships the ability to split queues into isolated partitions with independent concurrency limits.
  • Global Job Concurrency Limits - Implements cluster-wide concurrency limits to prevent downstream system overload.
  • Chunked Execution - Allows executing jobs atomically in groups based on size or timeouts with granular error handling.
  • Runtime Queue Management - Allows starting, stopping, pausing, or reconfiguring queues dynamically with settings that persist across restarts.
  • Job Priority Management - Provides logic to adjust job priority over time to prevent task starvation.
  • Job Deduplication - Prevents duplicate background tasks from being enqueued based on arguments or queues.
  • Job Progress Grouping - Tracks collective progress of job sets and triggers callbacks when individual jobs or entire groups complete.
  • Job Cancellation - Provides the capability to stop active jobs mid-execution across any node in the cluster.
  • Stalled Job Recovery - Identifies and rescues orphaned jobs or those that stalled due to worker crashes.
  • Worker Scaling - Adjusts the number of active worker nodes based on real-time queue depth to handle traffic fluctuations.
  • Job Batching - Groups multiple background tasks together to track collective progress and trigger callbacks upon completion.
  • Programmatic Quota Reservations - Allows programmatic checking and reservation of capacity to manage background task volume.
  • Synchronous Result Retrieval - Inserts jobs from any node and receives results synchronously via automatic forwarding across the cluster.
  • Background Job Monitoring - Tracks throughput, queue depth, and execution time through built-in instrumentation and metrics.
  • Historical Job Analytics - Retains processed job data in the database for historic analytics and health monitoring.
  • Queue Administration Interfaces - Provides tools for pausing queues, adjusting priorities, and pruning tasks at runtime.

Star history

Star history chart for oban-bg/obanStar history chart for oban-bg/oban

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does oban-bg/oban do?

Oban is a distributed background job processing system and task scheduler that uses PostgreSQL for transactional job storage and reliable execution across multiple nodes. It serves as a PostgreSQL-backed background worker and job queue, coordinating task execution and concurrency through a relational database to ensure delivery guarantees.

What are the main features of oban-bg/oban?

The main features of oban-bg/oban are: Background Job Queues, Database-Backed Deferred Queues, Hierarchical Workflows, Database Job Lifecycle Management, Workflow Scheduling And Orchestration, Background Task Schedulers, Workflow Orchestration, Cron Scheduling.

What are some open-source alternatives to oban-bg/oban?

Open-source alternatives to oban-bg/oban include: taskforcesh/bullmq — BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It… sorentwo/oban — Oban is a relational database-backed job processor and task scheduler for Elixir applications. It functions as a… inngest/inngest — Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background… sidekiq/sidekiq — Sidekiq is a background job processor and queue manager for Ruby that uses Redis to manage asynchronous tasks. It… timgit/pg-boss — pg-boss is a background task scheduler and distributed task queue that uses PostgreSQL as a reliable message broker… contribsys/faktory — Faktory is an open-source work server that queues, dispatches, and manages background jobs across multiple programming…

Open-source alternatives to Oban

Similar open-source projects, ranked by how many features they share with Oban.
  • taskforcesh/bullmqtaskforcesh avatar

    taskforcesh/bullmq

    8,432View on GitHub↗

    BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It functions as a distributed queue manager and task scheduler, utilizing Redis to manage asynchronous job processing and persistence. The system distinguishes itself through its role as a job workflow orchestrator, enabling the definition of complex parent-child job dependencies and hierarchies for multi-step workflows. It provides sandboxed process execution to isolate heavy workloads and prevent event loop blocking, alongside distributed rate limiting to protect downstream servic

    TypeScriptbackground-jobselixirnodejs
    View on GitHub↗8,432
  • sorentwo/obansorentwo avatar

    sorentwo/oban

    3,930View on GitHub↗

    Oban is a relational database-backed job processor and task scheduler for Elixir applications. It functions as a distributed workflow orchestrator that leverages database primitives to ensure job persistence, reliability, and consistent state management across clusters. The system distinguishes itself through complex workflow orchestration, enabling the composition of task dependencies using batching, sequential processing, and fan-out or fan-in patterns. It provides global throughput limiting and uniqueness enforcement to prevent duplicate work and protect downstream resources across distrib

    Elixir
    View on GitHub↗3,930
  • inngest/inngestinngest avatar

    inngest/inngest

    5,499View on GitHub↗

    Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background workflows. It enables developers to build resilient, stateful processes by memoizing function steps, ensuring that long-running tasks can automatically resume from the last successful operation after failures, timeouts, or infrastructure restarts. The platform distinguishes itself through its event-driven architecture, which uses a schema-validated bus to trigger functions and coordinate complex, multi-step logic. It employs an onion-model middleware approach for cross-cutting concer

    Go
    View on GitHub↗5,499
  • sidekiq/sidekiqsidekiq avatar

    sidekiq/sidekiq

    13,540View on GitHub↗

    Sidekiq is a background job processor and queue manager for Ruby that uses Redis to manage asynchronous tasks. It functions as a distributed task scheduler capable of handling periodic, delayed, and recurring jobs across a cluster of worker processes. The project features a job monitoring dashboard and administrative web interface for visualizing system state, tracking worker performance, and managing failed or dead jobs. It provides a distributed rate limiter to control execution frequency across multiple processes. The framework covers a broad range of operational capabilities, including j

    Rubybackground-jobsjobsruby
    View on GitHub↗13,540
  • See all 30 alternatives to Oban→