Sobre o projeto
@node-ts/bus é uma biblioteca TypeScript concebida para simplificar o desenvolvimento de aplicações resilientes baseadas em mensagens. Abstrai os detalhes técnicos do transporte de barramento subjacente, permitindo aos programadores concentrarem-se na criação de sistemas fracamente acoplados com o mínimo de código repetitivo.
A biblioteca permite aos programadores definir mensagens e manipuladores de mensagens, gerindo automaticamente o transporte de mensagens, as subscrições e as tentativas. Em caso de falha, as mensagens são devolvidas à fila para nova tentativa, promovendo a resiliência da aplicação. Também fornece fluxos de trabalho de mensagens (sagas) para coordenar múltiplas mensagens e manipuladores em processos de maior duração, tornando as aplicações mais robustas, autorregeneráveis e resistentes à perda ou corrupção de dados.
Requer Node.js 24 ou posterior.
## Componentes
O projeto é um monorepo com vários pacotes:
- **@node-ts/bus-core**: biblioteca central do barramento para enviar e receber mensagens e gerir fluxos de trabalho
- **@node-ts/bus-messages**: definições de tipos de mensagens para definir as suas próprias mensagens, eventos e comandos
- **@node-ts/bus-class-serializer**: serializador JSON que converte para instâncias de classe
- **@node-ts/bus-postgres**: adaptador de persistência Postgres
- **@node-ts/bus-mongodb**: adaptador de persistência MongoDB
- **@node-ts/bus-rabbitmq**: adaptador de transporte RabbitMQ
- **@node-ts/bus-sqs**: adaptador de transporte Amazon SQS
## Desenvolvimento
Para contribuidores, o repositório usa `pnpm` para suporte de monorepo e workspaces. Os scripts principais incluem:
- `bootstrap`: instalar dependências em todos os pacotes e elevar para a raiz
- `build`: compilar todos os pacotes
- `build:watch`: compilar todos os pacotes e observar alterações com compilações incrementais
- `clean`: remover todas as pastas dist e node_modules
- `lint`: executar ESLint (typescript-eslint, com reconhecimento de tipos) sobre o repositório
- `format`: formatar com prettier
- `test`: executar testes unitários e de integração
- `test:watch`: executar testes em modo de observação
A documentação está disponível em [https://bus.node-ts.com](https://bus.node-ts.com), e as perguntas podem ser colocadas nas GitHub Discussions.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.