npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

power-queues

v2.1.7

Published

High-performance Redis Streams queue for Node.js with Lua-powered bulk XADD, idempotent workers, heartbeat locks, stuck-task recovery, retries, DLQ, and distributed processing.

Downloads

667

Readme

power-queues

A lightweight, scalable, and high-performance queue engine for Node.js built on Redis Streams + Lua scripts.

The library is designed for real-world distributed systems that require high throughput, idempotent task execution, automatic recovery, and predictable performance under heavy load.

Unlike traditional Redis-based queues that rely on lists or complex abstractions, power-queues focuses on low-level control, atomic operations, and minimal overhead, making it ideal for high-load backends, microservices, schedulers, telemetry pipelines, and data-processing clusters.

Extends power-redis.

📚 Documentation

Full documentation is available here:
👉 https://power-queues.docs.ihor.bielchenko.com

📦 Installation

npm install power-queues

OR

yarn add power-queues

🧪 Basic usage

const queue = new PowerQueues({
	stream: 'email',
	group: 'workers',
});

await queue.loadScripts(true);

await queue.addTasks('email', [
	{ payload: { type: 'welcome', userId: 42 } },
	{ payload: { type: 'hello', userId: 51 } }
]);

Worker:

class EmailWorker extends PowerQueues {
	async onExecute(id, payload) {
		await sendEmail(payload);
	}
}

⚖️ power-queues vs Existing Solutions

|Feature |power-queues |BullMQ |Bee-Queue |Custom Streams| |----------------------|----------------|----------- |------------|--------------| |Bulk XADD (Lua) |✅ Yes |❌ No |❌ No |Rare | |Idempotent workers |✅ Built-in |Partial |❌ No |❌ No | |Stuck-task recovery |✅ Advanced |Basic |❌ No |Manual | |Heartbeats |✅ Yes |Limited |❌ No |Manual | |Retry logic |✅ Flexible |Good |Basic |Manual | |DLQ |✅ Native |Basic |❌ No |Manual | |Pure Streams |✅ Yes |Partial |❌ No |Yes | |Lua optimization |✅ Strong |Minimal |❌ No |Manual | |Throughput |🔥 Very high |High |Medium |Depends | |Overhead |Low |Medium |Low |Very high |

🚀 Key Features & Advantages

✔ Ultra‑Fast Bulk XADD (Lua‑Powered)

  • Adds thousands of messages per second using optimized Lua scripts.
  • Minimizes round‑trips to Redis.
  • Supports batching based on:
    • number of tasks
    • number of Redis arguments (safe upper bound)
  • Outperforms typical list‑based queues and generic abstractions.

✔ Built‑in Idempotent Workers

Every task can carry an idemKey, guaranteeing exactly‑once execution even under:

  • worker crashes
  • network interruptions
  • duplicate task submissions
  • process restarts

Idempotency includes:

  • Lock key
  • Start key
  • Done key
  • TTL‑managed execution lock
  • Automatic release on failure
  • Heartbeat mechanism
  • Waiting on TTL for contended executions

This makes the engine ideal for:

  • payment processing
  • external API calls
  • high‑value jobs
  • distributed pipelines

✔ Stuck Task Recovery (Advanced Stream Scanning)

If a worker crashes mid‑execution, power-queues automatically detects:

  • abandoned tasks
  • stalled locks
  • unfinished start keys

The engine then recovers these tasks back to active processing safely and efficiently.

✔ High‑Throughput Workers

  • Batch execution support
  • Parallel or sequential processing mode
  • Configurable worker loop interval
  • Individual and batch‑level error hooks
  • Safe retry flow with per‑task attempt counters

✔ Native DLQ (Dead‑Letter Queue)

When retries reach the configured limit:

  • the task is moved into ${stream}:dlq
  • includes: payload, attempt count, job, timestamp, error text
  • fully JSON‑safe

Perfect for monitoring or later re‑processing.

✔ Zero‑Overhead Serialization

power-queues uses:

  • safe JSON encoding
  • optional "flat" key/value task format
  • predictable and optimized payload transformation

This keeps Redis memory layout clean and eliminates overhead.

✔ Complete Set of Lifecycle Hooks

You can extend any part of the execution flow:

  • onSelected
  • onExecute
  • onSuccess
  • onError
  • onRetry
  • onBatchError
  • onReady

This allows full integration with:

  • monitoring systems
  • logging pipelines
  • external APM tools
  • domain logic

✔ Atomic Script Loading + NOSCRIPT Recovery

Scripts are:

  • loaded once
  • cached
  • auto‑reloaded if Redis restarts
  • executed safely via SHA‑based calls

Ensures resilience in failover scenarios.

✔ Job Progress Tracking

Optional per‑job counters:

  • job:ok
  • job:err
  • job:ready

Useful for UI dashboards and real‑time job progress visualization.

🧩 Extensibility

power-queues is ideal for building:

  • task schedulers
  • distributed cron engines
  • ETL pipelines
  • telemetry processors
  • notification workers
  • device monitoring systems
  • AI job pipelines
  • high-frequency background jobs

🧱 Reliability First

Every part of the engine is designed to prevent:

  • double execution
  • stuck tasks
  • orphan locks
  • lost messages
  • zombie workers
  • script desynchronization

The heartbeat + TTL strategy guarantees that no task is "lost" even in chaotic cluster environments.

📜 License

MIT - free for commercial and private use.