Registry / storage / redis-streams-queue

redis-streams-queue

JSON →
library2.1.1jsnpmunverified

Redis Streams Queue is a high-performance queue library built on Redis Streams, version 2.1.1. It offers reliable message delivery with consumer groups, exactly-once semantics, and built-in retries. Compared to Bull or Kue, it leverages Redis Streams' native features for better scalability and fault tolerance. The library is actively maintained with monthly releases.

npm install redis-streams-queue
INSTALL
IMPORT
SIG · REDIS-STREAMS-QUEU
R
redis-streams-queue
storagejavascriptv2.1.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Queue
import { Queue } from 'redis-streams-queue'
import Queue from 'redis-streams-queue'
Named export since v2; default import removed.
Consumer
import { Consumer } from 'redis-streams-queue'
const Consumer = require('redis-streams-queue').Consumer
ESM-only; CJS require will fail.
Message
import { Message } from 'redis-streams-queue'
import { Message } from 'redis-streams-queue/Message'
Message is part of main module, not a subpath export.

Demonstrates creating a queue, adding a message, and consuming with auto-acknowledgment using Redis client.

import { Queue, Consumer } from 'redis-streams-queue'; import { createClient } from 'redis'; const client = createClient({ url: process.env.REDIS_URL ?? 'redis://localhost:6379' }); await client.connect(); const queue = new Queue(client, 'my-queue'); const consumer = new Consumer(client, 'my-queue', 'group1', { consumerName: 'worker1' }); // Producer await queue.add({ task: 'process', data: { id: 1 } }); // Consumer await consumer.listen((message) => { console.log('Received:', message.data); return message.ack(); });
Debug
Known issues
breakingQueue constructor signature changed in v2: new Queue(client, streamName) instead of new Queue(streamName, client).
fix
Swap argument order: Queue(client, name).
affects: >=2.0.0
deprecatedQueue.add() without options is deprecated; use Queue.add({ ... }, { group: 'group1' }) for group safety.
fix
Always pass options object as second argument.
affects: >=2.1.0
gotchaConsumer function must return a Promise when calling ack() inside callback; otherwise message may auto-ack prematurely.
fix
Use async/await and ensure ack() is awaited.
affects: >=2.0.0
breakingLibrary is ESM-only since v2; importing with require() throws 'ERR_REQUIRE_ESM'.
fix
Convert to ESM (type: module) or use dynamic import().
affects: >=2.0.0
gotchaRedis client must be connected before creating Queue; otherwise throws 'Client is not ready'.
fix
Await client.connect() before instantiating Queue.
affects: >=2.0.0
Errors
Common errors & fixes
TypeError: Class constructor Queue cannot be invoked without 'new'
Using Queue as a function instead of constructor.
fix
Use `new Queue(client, name)`.
Error [ERR_REQUIRE_ESM]: require() of ES Module not supported
CJS require() used on ESM-only package.
fix
Use import syntax or set type: module in package.json.
ReplyError: NOGROUP No such consumer group '...' in XREADGROUP
Consumer group not created before consumption.
fix
Ensure Queue.createGroup() is called or use Consumer with autoGroup: true.
Upgrade
Version history
2.1.1latest on npm
Audit
Dependencies
redisrequiredRedis client required to interact with Redis server
Agent activity
22 hits · last 30 days
node
18
OpenAI (training)
2
Amazon
1
Resources
redis-streams-queue — npm install redis-streams-queue · libregistry