StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Utilities
  3. Background Jobs
  4. Background Processing
  5. Que vs Sidekiq

Que vs Sidekiq

OverviewComparisonAlternatives

Overview

Sidekiq
Sidekiq
Stacks1.2K
Followers632
Votes408
Que
Que
Stacks16
Followers20
Votes0

Que vs Sidekiq: What are the differences?

Introduction

In this Markdown code, we will outline the key differences between Que and Sidekiq, two popular background job processing libraries for Ruby.

  1. Concurrency Model: Que uses a threaded concurrency model, where each job is processed within its own thread. This allows for parallel execution of jobs, minimizing overall processing time. On the other hand, Sidekiq uses a multi-process concurrency model, where multiple worker processes can be spun up to handle jobs concurrently. This approach allows for scalability by utilizing multiple CPU cores effectively.

  2. Job Prioritization: Que has built-in support for job prioritization, allowing developers to specify the urgency of each job. Que assigns a priority value to each job, and the worker then processes jobs in priority order. In contrast, Sidekiq does not have native support for job prioritization. However, developers can use various plugins or custom implementation to achieve prioritization functionality with Sidekiq.

  3. Dependency Requirements: Que has minimal dependencies and is designed to work with PostgreSQL as its primary data store. It leverages PostgreSQL's advanced features like advisory locks and MVCC to provide robust job queueing and execution. Sidekiq, on the other hand, requires Redis as a dependency to store job data and use it as a messaging backend. This dependency on Redis provides high-speed job processing and distributed work across multiple processes or machines.

  4. Concurrency Limit: In Que, the number of concurrent threads that can execute jobs is determined by the database connection pool. By adjusting the connection pool size, developers can control the concurrency limit. Sidekiq, on the contrary, allows setting a fixed number of worker processes to achieve concurrency control. This approach provides flexibility in managing resource utilization and balancing the load.

  5. Retry Mechanism: Sidekiq has a comprehensive retry mechanism built-in, where failed jobs can be automatically retried based on configurable rules, such as exponential backoff. Developers can specify the maximum number of retries or even implement custom retry logic. In comparison, Que does not have native support for automatic retries. However, developers can implement their own retry mechanism by monitoring the job status and re-enqueuing failed jobs manually.

  6. Monitoring and Dashboard: Sidekiq provides a web-based dashboard to monitor jobs, queues, and worker processes in real-time. This dashboard offers insights into job status, failures, and performance metrics. Que, on the other hand, does not provide a built-in dashboard. However, developers can use various third-party libraries or build custom monitoring solutions based on Que's provided APIs.

In summary, Que and Sidekiq differ in their concurrency model, job prioritization capabilities, dependency requirements, concurrency limit control, retry mechanism availability, and built-in monitoring/dashboard features.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Detailed Comparison

Sidekiq
Sidekiq
Que
Que

Sidekiq uses threads to handle many jobs at the same time in the same process. It does not require Rails but will integrate tightly with Rails 3/4 to make background processing dead simple.

Que is a high-performance alternative to DelayedJob or QueueClassic that improves the reliability of your application by protecting your jobs with the same ACID guarantees as the rest of your data.

-
Concurrency; Efficiency; Safety;Transactional Control;Atomic Backups;Fewer Dependencies; Security
Statistics
Stacks
1.2K
Stacks
16
Followers
632
Followers
20
Votes
408
Votes
0
Pros & Cons
Pros
  • 124
    Simple
  • 99
    Efficient background processing
  • 60
    Scalability
  • 37
    Better then resque
  • 26
    Great documentation
No community feedback yet

What are some alternatives to Sidekiq, Que?

Beanstalkd

Beanstalkd

Beanstalks's interface is generic, but was originally designed for reducing the latency of page views in high-volume web applications by running time-consuming tasks asynchronously.

Hangfire

Hangfire

It is an open-source framework that helps you to create, process and manage your background jobs, i.e. operations you don't want to put in your request processing pipeline. It supports all kind of background tasks – short-running and long-running, CPU intensive and I/O intensive, one shot and recurrent.

Resque

Resque

Background jobs can be any Ruby class or module that responds to perform. Your existing classes can easily be converted to background jobs or you can create new classes specifically to do work. Or, you can do both.

delayed_job

delayed_job

Delayed_job (or DJ) encapsulates the common pattern of asynchronously executing longer tasks in the background. It is a direct extraction from Shopify where the job table is responsible for a multitude of core tasks.

Faktory

Faktory

Redis -> Sidekiq == Faktory -> Faktory. Faktory is a server daemon which provides a simple API to produce and consume background jobs. Jobs are a small JSON hash with a few mandatory keys.

Kue

Kue

Kue is a feature rich priority job queue for node.js backed by redis. A key feature of Kue is its clean user-interface for viewing and managing queued, active, failed, and completed jobs.

Bull

Bull

The fastest, most reliable, Redis-based queue for Node. Carefully written for rock solid stability and atomicity.

Cron

Cron

Background-only application which launches and runs other applications, or opens documents, at specified dates and times.

PHP-FPM

PHP-FPM

It is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites. It includes Adaptive process spawning, Advanced process management with graceful stop/start, Emergency restart in case of accidental opcode cache destruction etc.

Goose

Goose

It is a simple, reliable & scalable background processing library for Clojure. It has a transparent design & cloud-native architecture.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase