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. Bull vs Kue

Bull vs Kue

OverviewComparisonAlternatives

Overview

Kue
Kue
Stacks51
Followers88
Votes2
GitHub Stars9.5K
Forks871
Bull
Bull
Stacks92
Followers113
Votes1
GitHub Stars16.2K
Forks1.4K

Bull vs Kue: What are the differences?

Introduction

In this Markdown code, we will provide the key differences between Bull and Kue, two popular job queue libraries in Node.js.

  1. Job Priority: One key difference between Bull and Kue is how they handle job priorities. Bull allows jobs to have priority levels, which can be set when a job is added to the queue. This enables developers to control the order in which jobs are processed based on their priority. Kue, on the other hand, does not have built-in support for job priorities. All jobs are processed in the order they are added to the queue.

  2. Job Scheduling: Bull supports delayed jobs out of the box, which means that jobs can be scheduled to run at a specific time in the future. This can be useful for scenarios where certain tasks need to be executed at specific times. Kue, however, does not have built-in support for job scheduling. In Kue, jobs are processed as soon as they are added to the queue.

  3. Concurrency Control: Bull provides built-in support for controlling the concurrency of job processing. This allows developers to limit the number of jobs that can be concurrently processed, which can be beneficial for managing resource usage. In Kue, there is no built-in mechanism for controlling concurrency. All jobs are processed concurrently without any limitations.

  4. Job Events: Bull offers a comprehensive events system for monitoring job progress and state changes. Developers can easily listen to various events such as 'completed', 'failed', 'stalled', etc., and perform actions based on those events. Kue also has events for tracking job progress, but it has a more limited set of events compared to Bull.

  5. Persistence: Bull provides out-of-the-box persistence to store job state in databases such as Redis or MongoDB. This allows jobs to survive server restarts and ensures reliability. Kue, on the other hand, does not natively support persistence. If job state persistence is required in Kue, developers need to implement it manually.

  6. Community and Documentation: Bull has a larger community and a more active development community compared to Kue. This means that there are more resources, documentation, and community support available for Bull. Kue, while still maintained, has a smaller community and fewer resources available.

In summary, Bull and Kue differ in their approach to job priority, scheduling, concurrency control, event handling, persistence, and community support. Bull offers more flexibility and features in these areas, whereas Kue is simpler and more lightweight but lacks some of the advanced capabilities provided by Bull.

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

Kue
Kue
Bull
Bull

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.

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

-
Minimal CPU usage due to a polling-free design.; Robust design based on Redis.; Delayed jobs.; Schedule and repeat jobs according to a cron specification.; Rate limiter for jobs.; Retries.; Priority.; Concurrency.; Pause/resume—globally or locally.; Multiple job types per queue.; Threaded (sandboxed) processing functions.; Automatic recovery from process crashes.
Statistics
GitHub Stars
9.5K
GitHub Stars
16.2K
GitHub Forks
871
GitHub Forks
1.4K
Stacks
51
Stacks
92
Followers
88
Followers
113
Votes
2
Votes
1
Pros & Cons
Pros
  • 2
    Simple
Pros
  • 1
    Ease of use
Integrations
No integrations available
Node.js
Node.js

What are some alternatives to Kue, Bull?

Sidekiq

Sidekiq

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.

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.

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.

Que

Que

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.

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