OmniQueue

One API โ€“ every queue.

Ship messages through RabbitMQ, AWS SQS, Azure Service Bus, ActiveMQ, Kafka, and NATS / JetStream without changing a line of business code.

โœจ Magic Add-ons ๐Ÿ”„ Delays โฐ DLQ Time-travel ๐Ÿ” Tracing ๐Ÿ›ก๏ธ Idempotency

๐Ÿ› ๏ธ Quick Install

npm i @omniqueue/core @omniqueue/rabbitmq amqplib
npm i @omniqueue/core @omniqueue/kafka @omniqueue/kafka-kafkajs kafkajs
npm i @omniqueue/core @omniqueue/nats @omniqueue/nats-natsjs nats

Adapters use peer dependenciesโ€”install only what you need, nothing else is downloaded or bundled.

๐Ÿ”น Unified Interface

Single Broker interface with send, receive, explicit ack()/nack()

Queue autoprovisioning (streams / topics / queues)

Type-safe payloads, pluggable serializers

Tiny core (<10 kB)

โœจ Magic Add-ons

later() โ€“ cross-broker delayed messages

Time-travel DLQ replay

OpenTelemetry auto-trace

Idempotent consumer decorator

Zero-Drop outbox for exactly-once publish

๐Ÿš€ Quick Start

import { create } from "@omniqueue/core";
import "@omniqueue/rabbitmq";

const mq = await create("rabbitmq", { url: "amqp://localhost" });
await mq.send("tasks", { body: { id: 1 } });
await mq.receive("tasks", async msg => {
  console.log("got", msg.body);
  await msg.ack();
});

๐Ÿ“ฆ Supported Adapters

Package Broker Notes
@omniqueue/rabbitmq RabbitMQ needs amqplib
@omniqueue/sqs AWS SQS (Standard + FIFO) modular AWS SDK v3
@omniqueue/azuresb Azure Service Bus queues, topics, sessions
@omniqueue/activemq ActiveMQ (Artemis / Classic) STOMP
@omniqueue/kafka + driver Kafka pick kafka-kafkajs or kafka-rdkafka
@omniqueue/nats + driver NATS / JetStream pick nats-natsjs

๐Ÿ—บ๏ธ Coming Soon

CLI tools, gRPC/HTTP code-gen stubs, delay-topic poller containers, and Grafana dashboard plugins

๐Ÿ“š Documentation ๐Ÿ™ GitHub ๐Ÿ“ฆ NPM

๐Ÿค Contributing

  1. Fork โ†’ pnpm i โ†’ pnpm -r build
  2. Add tests (pnpm test) โ€“ Docker compose spins local RabbitMQ, LocalStack, etc.
  3. Submit PR. All adapters follow the same driver interface; lint passes = merge.