NestJS microservices for consulting, learning, messaging, and voice/video sessions.
My role: Backend developer on communication-heavy platform
Scope: Chat, VoIP, video sessions, SQL optimization, RabbitMQ, Angular integration
The problem
Consultant-client interactions needed a unified platform for messaging, calls, video sessions, and learning content.
My contribution
I developed communication services, integrated WebRTC, Socket.IO, and RabbitMQ with an Angular frontend, and optimized SQL stored procedures for frequently used screens.
Engineering decision
Keep session state separate from media delivery
Approach
Separate chat persistence, call/session coordination, and WebRTC media concerns. Use RabbitMQ for coordination and keep latency-sensitive socket paths direct.
Alternative and tradeoff
Putting durable session state only in socket handlers makes reconnect recovery fragile. Routing latency-sensitive interaction through every asynchronous service adds delay without necessarily improving durability.
Reviewing the behavior
Review reconnects, unauthorized room joins, duplicate events, session cleanup, and SQL retrieval under concurrent use. Distinguish a connected user from an active call and messaging latency from media latency.
Measurement and scope
In production, Mobasher supported 500+ concurrent users with observed messaging latency of 100–150 ms. These are my reported observations; the records are private. Messaging latency is separate from voice/video latency.