
Realtime Scalable Chat App is a full-stack chat application for one-to-one and group conversations. It uses a unified room model so both conversation types can share the same core messaging workflows.
Direct messages are represented as rooms containing two members. Group conversations use the same underlying room model, allowing direct messages and group chats to follow a consistent structure instead of requiring separate branching logic for each chat type.
The Socket.IO architecture separates user-scoped events from chat-scoped events.
User-scoped events handle:
Chat-scoped events handle chat communication.
This separation keeps user-level synchronization distinct from conversation-level communication and avoids branching between direct messages and group chats.
The application was built with Next.js, Node.js, and Express.js. The implemented workflows include:
PostgreSQL, Redis, and Docker are part of the project technology stack.
Real-time presence indicators use Redis-backed online and offline status updates. Redis handles these high-frequency presence updates so they do not require database lookups for each status change.
The application was load tested with Artillery. These measurements describe the load-testing run and do not represent production traffic: