Bull

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

Library
npm
v4.16.5
16,250stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
62/100Good
Development Activity36
Maintenance44
Community68
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
68/100Good
Architecture75
Code Quality68
Innovation60
Learning Curve70

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

Low Code Platforms · Databases

15,526

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

View details
53
Repo Health
77
Technical
60
Dependency
Built with
TypeScript72%
Java22%
Updated 9 months ago
TypeScript
97%
AGPL 3.0

Bigcapital

Invoicing Finance

3,846

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

View details
91
Repo Health
77
Technical
64
Dependency
Built with
TypeScript97%
Updated yesterday
TypeScript
69%
Other

Budibase

Low Code Platforms · No Code Platforms

28,220

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

View details
92
Repo Health
81
Technical
63
Dependency
Built with
TypeScript69%
Svelte26%
Updated today
TypeScript
96%
Other

Cal.diy

Scheduling

47,796

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

View details
93
Repo Health
86
Technical
66
Dependency
Built with
TypeScript96%
Updated 1 weeks ago
TypeScript
74%
AGPL 3.0

Ghostfolio

Invoicing Finance

9,153

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
71
Dependency
Built with
TypeScript74%
HTML23%
Updated yesterday
TypeScript
95%
AGPL 3.0

HeyForm

Forms Surveys · No Code Platforms

8,938

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

View details
86
Repo Health
67
Technical
69
Dependency
Built with
TypeScript95%
Updated today
JavaScript
46%
MIT

Kutt

Analytics · Marketing

11,039

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

View details
77
Repo Health
62
Technical
73
Dependency
Built with
JavaScript46%
Handlebars24%
HTML16%
Updated 2 days ago
TypeScript
92%
Other

n8n

Automation · No Code Platforms

201,152

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
66
Dependency
Built with
TypeScript92%
Updated today
TypeScript
64%
Other

NocoDB

No Code Platforms · Databases · Low Code Platforms

64,586

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

View details
91
Repo Health
77
Technical
64
Dependency
Built with
TypeScript64%
Vue31%
Updated today

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

Search