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.