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
sidekiq avatar

sidekiq/sidekiq

0
View on GitHub↗
13,540 stars·2,481 forks·Ruby·30 viewssidekiq.org↗

Sidekiq

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 job batching, uniqueness enforcement, and a variety of rate limiting strategies such as leaky bucket and sliding window. It incorporates reliability mechanisms like orphaned job recovery, job durability guarantees, and exponential backoff retries. Observability is handled through metrics export, error tracking, and historical performance analytics.

The system also includes security and deployment utilities, such as job argument encryption, management interface authorization, and graceful rolling restarts for worker processes.

Features

  • Distributed Recurring Task Scheduling - Manages periodic, delayed, and recurring tasks across a cluster of worker processes using Redis.
  • Asynchronous Background Processors - Provides a comprehensive framework for offloading time-consuming operations to background threads to maintain responsiveness.
  • Job State Persistence - Persists job payloads and orchestration metadata in Redis to ensure reliability across application restarts.
  • Job Queues - A system for scheduling, retrying, and monitoring asynchronous jobs within a Ruby application environment.
  • Worker Process Management - Manages a swarm of child processes to maximize CPU utilization across a single machine.
  • Multi-threaded Execution - Processes multiple background jobs concurrently within a single process using a pool of worker threads.
  • Job Durability Guarantees - Ensures jobs are not lost during process crashes by maintaining them in the data store until completion.
  • Redis-Backed Background Job Libraries - A background processing framework for Ruby that uses Redis to manage asynchronous tasks and queues.
  • Reliable Task Queues - Ensures jobs are not lost during process crashes by moving tasks between temporary and active queues.
  • Background Job Dashboards - Provides a web interface for visualizing queue health, tracking worker performance, and managing failed jobs.
  • Queue Administration Interfaces - Ships a dedicated management interface for monitoring, pausing, and clearing background job queues.
  • System Health Monitoring - Displays real-time statistics, queue sizes, and overall system health to track production stability.
  • Queue Processing Pausing - Stops the execution of specific queues temporarily to restrict processing to certain time windows.
  • Lua Scripting - Uses Lua scripting to execute atomic state transitions and queue movements on the Redis server.
  • Job - Prevents multiple instances of the same job from being queued or processed simultaneously using unique identifiers.
  • Time-Ordered Scheduling - Uses Redis sorted sets to store and trigger future jobs once the current time exceeds the job timestamp.
  • Cron Scheduling - Executes recurring background maintenance and reporting tasks based on cron-like timetable expressions.
  • Delayed Task Scheduling - Schedules one-shot background tasks to run after a specified delay or at an absolute future time.
  • Queue Introspection and Control - Enables inspecting queue depth, calculating latency, and removing specific jobs or entire queues from the data store.
  • Execution Rate Limiters - Provides controls for restricting the number of simultaneous job executions to prevent system overload.
  • Job Scheduling - Provides utilities to enumerate, filter, and delete jobs that are pending future execution or awaiting retry.
  • Atomic Queue Transitions - Uses server-side scripts to move scheduled tasks to the active queue in a single atomic operation.
  • Job Progress Grouping - Groups multiple asynchronous jobs as a single unit to track collective progress and trigger completion callbacks.
  • Stalled Job Recovery - Detects and recovers background tasks that stopped making progress due to worker crashes.
  • Distributed Rate Limiting - Provides a distributed rate limiter to control the execution frequency of background tasks across multiple processes.
  • Fixed Window Algorithms - Implements rate limiting using fixed time intervals and atomic counters to cap operations.
  • Leaky Bucket Implementations - Implements the leaky-bucket algorithm to allow brief bursts while enforcing a steady long-term processing rate.
  • Sliding Window Implementations - Provides rate limiting that caps operations within a sliding time window to prevent bursts at boundary resets.
  • Recurring Job Scheduling - Provides tools to list, view history, and manually trigger or pause recurring tasks defined on a fixed timetable.
  • Complexity-Based Rate Limiting - Controls execution access based on a points-based budget where each request consumes points based on complexity.
  • Deployment Rolling Restarts - Implements graceful rolling restarts by stopping new job fetches and waiting for active tasks to complete.
  • Process Preloaders - Loads application code into a parent process before spawning workers to reduce the overall memory footprint.
  • Exponential Backoff Retries - Implements an exponential backoff strategy for retrying failed background tasks to prevent system overload.
  • Local Job Buffering - Enqueues jobs locally during transient networking errors and delivers them once connectivity is restored.
  • Administrative Interface Access Controls - Provides controls that restrict access to the administrative dashboard via authentication and authorization.
  • Cache Encryption - Encrypts sensitive argument hashes within a job to protect data at rest in the Redis store.
  • Poison Pill Job Handling - Detects jobs that repeatedly cause process crashes and moves them to a dead set.
  • Distributed Job Locking - Prevents multiple workers from processing the same job simultaneously using distributed locks in Redis.
  • Process Forking Strategies - Loads application code in a primary process before forking child workers to reduce memory overhead.
  • Historical Job Analytics - Stores and retrieves performance data over time to analyze trends and system health.
  • Dead Letter Queue Management - Stores jobs that exhausted all retries in a dead set for manual inspection or re-execution.
  • Metric and Performance Monitors - Provides tools for high-frequency collection and visualization of worker performance data and system health metrics.
  • Rate Limit Monitoring Tools - Visualizes configured rate limits and real-time usage metrics for concurrent operations through the dashboard.
  • Concurrency Limiters - Restricts the number of simultaneous background job executions across all processes using a distributed lock.
  • Resource-Based Restarts - Implements automatic process restarts triggered when a specific memory usage threshold is exceeded.

Star history

Star history chart for sidekiq/sidekiqStar history chart for sidekiq/sidekiq

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

Open-source alternatives to Sidekiq

Similar open-source projects, ranked by how many features they share with Sidekiq.
  • 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
  • oban-bg/obanoban-bg avatar

    oban-bg/oban

    3,812View on GitHub↗

    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 processi

    Elixir
    View on GitHub↗3,812
  • timgit/pg-bosstimgit avatar

    timgit/pg-boss

    3,218View on GitHub↗

    pg-boss is a background task scheduler and distributed task queue that uses PostgreSQL as a reliable message broker for asynchronous job processing. It provides a system for distributing work across multiple application instances, ensuring exactly-once delivery through atomic database transactions. The project includes a cron job scheduler for automating recurring tasks and a PostgreSQL pub-sub system for fan-out event distribution. It also features a web-based management dashboard for monitoring queue statistics and controlling job lifecycles, including manual retries and cancellations. Cap

    TypeScriptjobnodenodejs
    View on GitHub↗3,218
  • quartz-scheduler/quartzquartz-scheduler avatar

    quartz-scheduler/quartz

    6,732View on GitHub↗

    Quartz is a Java job scheduling framework and task execution engine designed to manage and execute scheduled tasks within application environments. It functions as an enterprise job scheduler that persists job state and execution history to maintain reliability across system restarts. The system distinguishes itself through a decoupled architecture that separates the definition of a job's action from the trigger logic that determines when it runs. It supports distributed task coordination across multiple server nodes to provide high availability and load balancing. The framework covers a bro

    Java
    View on GitHub↗6,732
See all 30 alternatives to Sidekiq→

Frequently asked questions

What does sidekiq/sidekiq do?

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.

What are the main features of sidekiq/sidekiq?

The main features of sidekiq/sidekiq are: Distributed Recurring Task Scheduling, Asynchronous Background Processors, Job State Persistence, Job Queues, Worker Process Management, Multi-threaded Execution, Job Durability Guarantees, Redis-Backed Background Job Libraries.

What are some open-source alternatives to sidekiq/sidekiq?

Open-source alternatives to sidekiq/sidekiq include: inngest/inngest — Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background… oban-bg/oban — Oban is a distributed background job processing system and task scheduler that uses PostgreSQL for transactional job… timgit/pg-boss — pg-boss is a background task scheduler and distributed task queue that uses PostgreSQL as a reliable message broker… quartz-scheduler/quartz — Quartz is a Java job scheduling framework and task execution engine designed to manage and execute scheduled tasks… taskforcesh/bullmq — BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It… bee-queue/bee-queue — Bee-queue is a Node.js background processing system that uses Redis for job queueing and persistence. It is designed…