An enterprise-grade distributed messaging system I architected and led development for, designed to handle real-time sports
updates from external MQTT feeds and distribute them to internal systems and web clients. The solution provides high
availability, fault tolerance, and enterprise-level security through a 3-node NATS cluster deployment.
Business Requirements
- Real-time sports data ingestion from thesports.com via MQTT
- High-availability message distribution to internal applications
- Secure real-time updates to authenticated web users
- Fault-tolerant architecture with zero message loss
- Scalable system supporting multiple client types
Architecture Design
- 3-node NATS cluster across different AWS subnets for fault tolerance
- JetStream persistence layer for message durability and replay capability
- Go-based authentication service integration
- Dockerized NATS containers for consistent deployment
- Load balancing across cluster nodes for high availability
- MQTT to NATS bridge for external data ingestion
Security Implementation
- Private IP cluster communication for enhanced security
- Multi-tenant security with separate NATS accounts per application
- NKEY-based authentication for internal system clients
- Custom Go-based NATS AUTH container for JWT verification
- Fine-grained permissions and access controls
- TLS encryption for all cluster and client communications