Sobre el proyecto
@node-ts/bus es una biblioteca de TypeScript diseñada para simplificar el desarrollo de aplicaciones resilientes basadas en mensajes. Abstrae los detalles técnicos del transporte de bus subyacente, lo que permite a los desarrolladores centrarse en crear sistemas débilmente acoplados con una mínima cantidad de código repetitivo.
La biblioteca permite a los desarrolladores definir mensajes y manejadores de mensajes, mientras gestiona automáticamente el transporte de mensajes, las suscripciones y los reintentos. En caso de fallos, los mensajes se devuelven a la cola para su reintento, lo que promueve la resiliencia de la aplicación. También proporciona flujos de trabajo de mensajes (sagas) para coordinar múltiples mensajes y manejadores en procesos de mayor duración, lo que hace que las aplicaciones sean más robustas, autorreparables y resistentes a la pérdida o corrupción de datos.
Requiere Node.js 24 o posterior.
## Componentes
El proyecto es un monorepositorio con varios paquetes:
- **@node-ts/bus-core**: Biblioteca de bus central para enviar y recibir mensajes y gestionar flujos de trabajo
- **@node-ts/bus-messages**: Definiciones de tipos de mensajes para definir tus propios mensajes, eventos y comandos
- **@node-ts/bus-class-serializer**: Serializador JSON que convierte a instancias de clase
- **@node-ts/bus-postgres**: Adaptador de persistencia de Postgres
- **@node-ts/bus-mongodb**: Adaptador de persistencia de MongoDB
- **@node-ts/bus-rabbitmq**: Adaptador de transporte de RabbitMQ
- **@node-ts/bus-sqs**: Adaptador de transporte de Amazon SQS
## Desarrollo
Para los colaboradores, el repositorio utiliza `pnpm` para el soporte de monorepositorio y espacios de trabajo. Los scripts clave incluyen:
- `bootstrap`: Instalar dependencias en todos los paquetes y elevarlas a la raíz
- `build`: Compilar todos los paquetes
- `build:watch`: Compilar todos los paquetes y observar cambios con compilaciones incrementales
- `clean`: Eliminar todas las carpetas dist y node_modules
- `lint`: Ejecutar ESLint (typescript-eslint, con reconocimiento de tipos) en todo el repositorio
- `format`: Formatear con prettier
- `test`: Ejecutar pruebas unitarias y de integración
- `test:watch`: Ejecutar pruebas en modo de observación
La documentación está disponible en [https://bus.node-ts.com](https://bus.node-ts.com), y las preguntas pueden dirigirse a GitHub Discussions.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.