spool
ActiveThread-safe in-memory job queue for Node.js with priority lanes, retry policies, and a web UI for monitoring.
Node.jsQueuesTypeScriptWeb UI
View on GitHubspool 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.