A lightweight message queue for Node.js that uses Redis as a backend, requiring no dedicated queue server.
RSMQ (Redis Simple Message Queue) is a lightweight message queue library for Node.js that uses Redis as its backend, eliminating the need for a dedicated queue server. It solves the problem of reliable message passing between distributed components with features like guaranteed delivery, FIFO ordering, and configurable visibility timeouts. Developers use it to decouple services, handle background jobs, or manage asynchronous workflows in a simple and performant way.
Node.js developers building distributed applications, microservices, or background job processing systems who already use or are willing to use Redis as an infrastructure component.
RSMQ offers a dead-simple alternative to heavyweight message queues by leveraging Redis, which many teams already have deployed. It provides essential queue semantics (FIFO, exactly-once delivery, persistence) with minimal operational overhead and high throughput, making it ideal for teams wanting to avoid complex queue server management.
Redis Simple Message Queue
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Requires only a Redis server and consists of ~500 lines of JavaScript, minimizing dependencies and setup complexity as highlighted in the README.
Capable of sending/receiving over 10,000 messages per second on average hardware, leveraging Redis for speed as stated in the features.
Provides exactly-once semantics within a configurable visibility timeout, ensuring messages are delivered to exactly one recipient for reliable processing.
Handles messages in first-in-first-out order by default, with optional per-message delays for controlled workflow timing.
Supported by additional modules for workers, REST APIs, CLI, and promise-based interfaces, allowing tailored extensions beyond the core.
Requires a Redis server (version 2.6+ for EVAL commands), adding infrastructure management and potential single point of failure concerns.
Lacks advanced queue capabilities like message prioritization or dead-letter queues out-of-the-box; complex workflows need separate modules like rsmq-worker.
Default maximum message size is 65,536 bytes, which can be restrictive for large payloads unless explicitly configured to unlimited (-1).
The optional realtime PUBLISH feature requires careful use of Redis SUBSCRIBE to avoid multiple simultaneous receiveMessage calls, as warned in the README.
rsmq is an open-source alternative to the following products: