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.