Packages
relaybus is published as nine npm packages under the @relaybus scope, released together with one shared version.
| Package | Purpose |
|---|---|
@relaybus/core | The bus, dispatcher, retry policies and the in-memory store. |
@relaybus/nestjs | RelayBusModule, the @RelayBusConsumer decorator, lifecycle and health. |
@relaybus/postgres | PostgreSQL 13+ store for pg, Kysely, Knex, TypeORM, Drizzle and Prisma transactions. |
@relaybus/mongodb | MongoDB 6+ store on multi-document transactions; works with Mongoose sessions. |
@relaybus/kafka | Kafka transport for @confluentinc/kafka-javascript (recommended) and kafkajs, CloudEvents binary mode. |
@relaybus/rabbitmq | RabbitMQ transport with publisher confirms, reconnects, quorum queues and dead letters. |
@relaybus/testing | The store contract suite, a fake clock and an in-memory transport. |
@relaybus/eslint-plugin | ESLint rules: no calls to other services inside a transaction, no publish outside one. |
@relaybus/otel | OpenTelemetry metrics, backlog gauges and one trace across services. |
Typical installs
sh
# NestJS + PostgreSQL
pnpm add @relaybus/core @relaybus/nestjs @relaybus/postgres pg
# NestJS + MongoDB
pnpm add @relaybus/core @relaybus/nestjs @relaybus/mongodb mongodb
# add a broker
pnpm add @relaybus/kafka kafkajs
pnpm add @relaybus/rabbitmq amqplib
# tests and lint rules
pnpm add -D @relaybus/testing vitest
pnpm add -D @relaybus/eslint-plugin
# metrics and traces
pnpm add @relaybus/otel @opentelemetry/apiBring your own store: implement the EventStore interface and run the contract suite from @relaybus/testing against it.