Bull

Redis-backed job queue for Node.js with retries, rate limiting, and scheduling

Library
npm
v4.16.5
16,255 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
63 /100 Good
Development Activity 40
Maintenance 44
Community 68
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
68 /100 Good
Architecture 75
Code Quality 68
Innovation 60
Learning Curve 70

Bull is a fast, robust Redis-based queue library for Node.js used to distribute jobs and messages across workers. It provides delayed jobs, priorities, rate limiting, retries with backoff, repeatable cron-style jobs, and atomic Redis-script-driven state transitions, making it a long-standing choice for background job processing in Node applications.

The project is now in maintenance mode (bug fixes only), with its author steering new feature development toward BullMQ, a TypeScript rewrite. Bull nonetheless remains widely deployed in production systems such as Atlassian’s GitHub-for-Jira integration and NestJS’s @nestjs/bull module, and continues to receive stability and security fixes.

What You Get

  • A Queue class for creating named job queues backed by Redis
  • Delayed, repeatable (cron-based), and prioritized job scheduling
  • Configurable retries with backoff strategies and rate limiting per queue
  • Sandboxed (child-process) job processors for CPU-heavy or crash-isolated work
  • Global and local events for job lifecycle (active, completed, failed, stalled)
  • Pause/resume support at the queue or worker level

Common Use Cases

  • Offloading video/audio/image transcoding to background workers
  • Sending transactional emails or notifications asynchronously
  • Running scheduled/cron-style maintenance tasks across a cluster
  • Rate-limiting calls to third-party APIs from a worker pool
  • Building multi-step pipelines where jobs report progress to a UI

Under The Hood

Architecture - Bull represents each queue as a set of Redis keys (lists, sorted sets, and hashes) manipulated through Lua scripts (in lib/commands) to guarantee atomic state transitions between waiting, active, completed, failed, and delayed states; lib/queue.js orchestrates job creation and dispatch, while lib/job.js and lib/worker.js handle per-job execution, locking (via a renewable Redis lock), and progress/event reporting through Redis pub/sub.

Tech Stack - The library is plain JavaScript (no TypeScript source, though .d.ts typings are maintained externally in DefinitelyTyped) targeting Node.js 12+, built on ioredis for the Redis client, msgpackr for efficient job-data serialization, cron-parser for repeatable-job schedules, and lodash/semver/uuid as small utility dependencies; the Lua scripts are compiled at runtime via generateRawScripts.js.

Code Quality - The test/ directory contains an extensive Mocha-based suite (test_queue.js, test_job.js, test_pause.js, test_metrics.js, and more) covering job lifecycle, pausing, obliteration, and connection handling, with fixtures for sandboxed processors; the codebase favors callback/promise-based APIs consistent with its 2013-era origins rather than modern async/await idioms throughout, and commit history shows the project is now accepting only targeted bug fixes rather than new feature work.

API Design - The public API centers on a small number of well-documented methods (queue.add(), queue.process(), job.progress(), job.moveToCompleted()) with a low-friction quick-start (new Queue('name') plus a .process() callback is enough to get going), though some ergonomics (callback-style done() completion, separate TypeScript definitions package) reflect its age relative to newer alternatives like BullMQ.

Used by 12 apps in this directory

TypeScript
72%
AGPL 3.0

APITable

Databases · Low Code Platforms

15,623

API-first collaborative spreadsheet-database platform that auto-generates REST APIs and lets teams build internal tools, CRMs, and dashboards without code.

View details
71
Repo Health
77
Technical
60
Dependency
Built with
TypeScript 72%
Java 22%
Updated 3 weeks ago
TypeScript
97%
AGPL 3.0

Bigcapital

Invoicing Finance

3,916

Self-hostable double-entry accounting platform with invoicing, inventory, multi-currency, and real-time financial reporting for small and medium businesses.

View details
90
Repo Health
77
Technical
61
Dependency
Built with
TypeScript 97%
Updated 6 days ago
TypeScript
70%
Other

Budibase

Low Code Platforms · No Code Platforms

28,324

Build AI agents, automations, and internal apps on a single open-source platform with full self-hosting control.

View details
91
Repo Health
81
Technical
63
Dependency
Built with
TypeScript 70%
Svelte 26%
Updated 1 weeks ago
TypeScript
96%
Other

Cal.diy

Scheduling

48,697

The 100% MIT-licensed, community-driven scheduling platform — self-host your own booking infrastructure with no enterprise strings attached.

View details
91
Repo Health
86
Technical
65
Dependency
Built with
TypeScript 96%
Updated 6 days ago
TypeScript
76%
AGPL 3.0

Ghostfolio

Invoicing Finance

9,367

Track your stocks, ETFs, and crypto with a privacy-first, self-hostable wealth management platform built for data-driven investors.

View details
93
Repo Health
79
Technical
67
Dependency
Built with
TypeScript 76%
HTML 21%
Updated 5 days ago
TypeScript
95%
AGPL 3.0

HeyForm

Forms Surveys · No Code Platforms

8,984

Open-source conversational form builder with AI generation, conditional logic, and 30+ integrations — self-host with full data ownership.

View details
83
Repo Health
67
Technical
67
Dependency
Built with
TypeScript 95%
Updated 3 weeks ago
JavaScript
46%
MIT

Kutt

Analytics · Marketing

11,125

Self-hosted URL shortener with custom domains, per-link analytics, and zero build step required.

View details
74
Repo Health
62
Technical
72
Dependency
Built with
JavaScript 46%
Handlebars 24%
HTML 16%
Updated 4 weeks ago
TypeScript
92%
Other

n8n

Automation · No Code Platforms

206,147

Code when you need it, UI when you don't — the workflow automation platform built for technical teams who refuse to choose.

View details
95
Repo Health
87
Technical
65
Dependency
Built with
TypeScript 92%
Updated 4 days ago
TypeScript
65%
Other

NocoDB

Databases · Low Code Platforms · No Code Platforms

65,098

Turn any SQL database into a collaborative no-code spreadsheet with automatic REST APIs and real-time views.

View details
90
Repo Health
77
Technical
62
Dependency
Built with
TypeScript 65%
Vue 30%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers