All Projects

spool

Active

Thread-safe in-memory job queue for Node.js with priority lanes, retry policies, and a web UI for monitoring.

Node.jsQueuesTypeScriptWeb UI
View on GitHub

spool is a lightweight background job queue that lives entirely in your Node.js process. No Redis, no Postgres, no external dependencies — just an in-process priority queue with a clean API.

Use case

For applications that need background processing but don't want the operational overhead of a separate queue service. Ideal for single-server deployments, development environments, and microservices where the queue traffic is bounded.

API

import { Queue } from 'spool'

const queue = new Queue()

queue.register('send-email', async (job) => {
  await sendEmail(job.data)
})

queue.enqueue('send-email', {
  to: 'user@example.com',
  subject: 'Welcome',
}, {
  priority: 'high',
  retries: 3,
  backoff: 'exponential',
})

Web UI

Mount the built-in UI at any path:

app.use('/spool', queue.ui())

Shows live job counts by status, retry history, and a timeline of job throughput.

Status

v0.6, actively developed. Persistence via SQLite is in progress.