Chirp
A real-time 1:1 chat backend as TypeScript microservices behind an API gateway. Focused on edge auth, internal service trust, and event-driven OTP delivery.
Tech
Node.js, Express, TypeScript, MongoDB, Redis, RabbitMQ, Socket.IO, Cloudinary, Docker, AWS EC2, Caddy, Helmet
Type Backend
Status active
What I learned
- - Authenticate at an API gateway and forward identity to internal services with shared secrets, so chat HTTP never trusts a raw Bearer token from the browser
- - Split registration into a Redis-backed pending signup plus a RabbitMQ OTP consumer, so email sending stays off the request path
- - Keep chat writes on HTTP and use Socket.IO as a push-only channel for presence, delivery, and seen receipts — including connection-counted online status