Repositorio público

SMS Manager

Importar CSV no puede bloquear la API Nest. La campaña persiste y publica en la cola RabbitMQ; consumidores en TypeScript, Go o Rust graban el resultado en Mongo. La API no espera a la operadora.

Repositorio

Desacoplamento da campanha
Desacoplamento da campanha CSV entra na API Nest, que persiste em PostgreSQL e publica na fila RabbitMQ. Consumidores em TypeScript, Go ou Rust, no mesmo contrato, registram o resultado no MongoDB. A API não bloqueia no ritmo da operadora. CSV upload API Nest campanha Postgres persistência API → fila Fila RabbitMQ TS Go Rust mesmo contrato Mongo resultado API não espera a operadora

CSV na API Nest com persistência Postgres; publicação na fila; consumidores no mesmo contrato gravam no Mongo. A API não espera a operadora.

Problema

Las campañas de SMS parten de archivos CSV, usuarios, empresas y autenticación entre servicios. Validar y persistir en el mismo proceso que dispara miles de mensajes acopla la API al ritmo de la operadora y de la cola.

Restricciones

El entorno debe ser reproducible. La autenticación entre servicios no puede depender de JWT opaco sin revocación. Los consumidores en más de un lenguaje existen para comparar el mismo contrato de mensajería.

Decisión

Siete aplicaciones: APIs NestJS de usuarios/autenticación y de empresas/campañas; consumidores equivalentes en Node.js/TypeScript, Go y Rust; aprovisionador declarativo de exchanges, colas y bindings; generador de masa CSV. PostgreSQL/TypeORM para datos relacionales en la API; MongoDB para el resultado del consumo; Redis para caché de token opaco (revocable); gRPC para autenticación entre servicios; RabbitMQ con exchanges topic para los lotes. La API publica y sigue sin bloquearse al ritmo de la operadora.

Estado actual

Repositorio público con Docker Compose para PostgreSQL, MongoDB, Redis y RabbitMQ. La arquitectura separa dominio, aplicación e infraestructura en los contextos de usuarios, autenticación y empresas; los tres consumidores implementan el mismo contrato de mensaje.

Limitaciones

Es un artefacto de estudio y operación local de mensajería, no un producto comercial con SLA de operadora. Los tres consumidores demuestran el contrato; no afirman que los tres lenguajes corran juntos en producción del autor.