@node-ts/bus is a node-based library that aims to simplify the development of resilient message-based applications. By handling the technical aspects of the underlying bus transport, it enables developers to focus on creating loosely coupled systems with less boilerplate.
@node-ts/bus allows developers to specify messages and message handlers. It then manages the message transport, subscriptions, and retries behind the scenes. In case of failure, messages are returned to the queue for retry, promoting application resilience.
Additionally, the library provides message workflows, or sagas, to help developers coordinate multiple messages and handlers in longer running processes. As a result, applications built with @node-ts/bus can be more robust, self-healing, and resistant to data loss or corruption.
🔥 View our docs at https://bus.node-ts.com 🔥
🤔 Have a question? Join the Discussion 🤔
- @node-ts/bus-core - Core bus library for sending and receiving messages and managing workflows
- @node-ts/bus-messages - A set of message type definitions used to define your own messages, events and commands
- @node-ts/bus-class-serializer - A json serializer that converts to class instances
- @node-ts/bus-postgres - A Postgres persistence adapter for @node-ts/bus
- @node-ts/bus-mongodb - A MongoDB persistence adapter for @node-ts/bus
- @node-ts/bus-rabbitmq - A Rabbit MQ transport adapter for @node-ts/bus
- @node-ts/bus-sqs - An Amazon SQS transport adapter for @node-ts/bus
This guide is for developers and contributors to the library itself. For consumers, please see our consumer docs at https://bus.node-ts.com.
This package uses pnpm
for monorepo support and workspaces.
Install dependencies
pnpm i
bootstrap
- install dependencies in all packages and hoist to rootbuild
- build all packagesbuild:watch
- build all packages and watch for changes with incremental buildsclean
- remove all dist and node_modules folderslint
- lint inspecttest
- run unit and integration teststest:watch
- run tests in watch mode, rerun on changes