https://github.com/node-ts/bus
A typescript based enterprise service bus framework based on enterprise integration patterns
https://github.com/node-ts/bus
bus distributed-systems esb messaging node service-bus typescript
Last synced: 5 months ago
JSON representation
A typescript based enterprise service bus framework based on enterprise integration patterns
- Host: GitHub
- URL: https://github.com/node-ts/bus
- Owner: node-ts
- License: mit
- Created: 2019-03-27T09:56:02.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-01T22:20:28.000Z (about 1 year ago)
- Last Synced: 2025-03-30T22:05:57.898Z (6 months ago)
- Topics: bus, distributed-systems, esb, messaging, node, service-bus, typescript
- Language: TypeScript
- Homepage: https://bus.node-ts.com/
- Size: 3.58 MB
- Stars: 281
- Watchers: 11
- Forks: 26
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @node-ts/bus
@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.
## Further info
🔥 View our docs at [https://bus.node-ts.com](https://bus.node-ts.com) 🔥
🤔 Have a question? [Join the Discussion](https://github.com/node-ts/bus/discussions) 🤔
## Components
- [@node-ts/bus-core](https://github.com/node-ts/bus/tree/master/packages/bus-core) - Core bus library for sending and receiving messages and managing workflows
- [@node-ts/bus-messages](https://github.com/node-ts/bus/tree/master/packages/bus-messages) - A set of message type definitions used to define your own messages, events and commands
- [@node-ts/bus-class-serializer](https://github.com/node-ts/bus/tree/master/packages/bus-class-serializer) - A json serializer that converts to class instances
- [@node-ts/bus-postgres](https://github.com/node-ts/bus/tree/master/packages/bus-postgres) - A Postgres persistence adapter for @node-ts/bus
- [@node-ts/bus-mongodb](https://github.com/node-ts/bus/tree/master/packages/bus-mongodb) - A MongoDB persistence adapter for @node-ts/bus
- [@node-ts/bus-rabbitmq](https://github.com/node-ts/bus/tree/master/packages/bus-rabbitmq) - A Rabbit MQ transport adapter for @node-ts/bus
- [@node-ts/bus-sqs](https://github.com/node-ts/bus/tree/master/packages/bus-sqs) - An Amazon SQS transport adapter for @node-ts/bus## Development
This guide is for developers and contributors to the library itself. For consumers, please see our consumer docs at [https://bus.node-ts.com](https://bus.node-ts.com).
### Installation
This package uses `pnpm` for monorepo support and workspaces.
Install dependencies
```sh
pnpm i
```### Scripts
- `bootstrap` - install dependencies in all packages and hoist to root
- `build` - build all packages
- `build:watch` - build all packages and watch for changes with incremental builds
- `clean` - remove all _dist_ and _node_modules_ folders
- `lint` - lint inspect
- `test` - run unit and integration tests
- `test:watch` - run tests in watch mode, rerun on changes