Saltar al contenido

Proyecto

rabbitmq-resilience

Una librería open source en TypeScript que aporta resiliencia al manejo de mensajes RabbitMQ en Node.js, publicada en npm.

El problema

Los consumidores de mensajes fallan en producción por razones que rara vez tienen que ver con el mensaje: caídas del broker, errores transitorios de servicios downstream, mensajes envenenados y tablas de eventos que no dejan de crecer. Reimplementar reintentos, dead-letter y recuperación en cada servicio duplica código y oculta los fallos.

Resumen

Una librería reutilizable que envuelve los consumidores de RabbitMQ con reintentos inmediatos y diferidos, colas de reintento y dead-letter, republicación y reprocesamiento de eventos por UUID, alertas SMTP para eventos en dead-letter, rotación de tablas configurable y una superficie HTTP/WebSocket para inspeccionar y reproducir eventos.

Qué hace

  • Reintentos inmediatos y diferidos con número de intentos y retardo configurables.
  • Colas dedicadas de reintento y dead-letter, para que ningún evento fallido se pierda.
  • Republicación y reprocesamiento de eventos por UUID mediante las rutas HTTP incluidas.
  • Alertas SMTP cuando un evento llega a la cola de dead-letter.
  • Rotación de tablas configurable por número de registros, tamaño o antigüedad, con descarga opcional por SFTP.
  • Rutas HTTP y un gestor de WebSocket incluidos en el paquete.

Instalación

npm install rabbitmq-resilience