Distributed Real-Time IM Platform

Executive Summary
The company originally depended on a third-party IM provider. That made the business expensive to operate and limited how much the messaging experience could be customized.
I worked on a self-owned enterprise IM platform built with Go microservices so the team could control the stack directly and extend the system over time.
The target scope included:
1-on-1 chat
Group chat
File transfer
Web real-time messaging
Microservice architecture
Future audio/video expansion
100,000+ user design target
Sub-100ms message latency
What I Built
I co-designed the platform architecture and worked with the Tech Lead on the main service boundaries:
user-service
message-service
group-service
file-service
gateway-service
realtime-service
The frontend stack used:
Vue 3
TypeScript
The backend and infrastructure stack used:
Go
MySQL
Redis
MongoDB
Kafka
EMQX (MQTT)
WebSocket
Docker
Kubernetes
Core Engineering Work
Realtime Messaging
I helped design and implement the realtime path for:
WebSocket long connections
Online status management
Heartbeat detection
Asynchronous message push
Kafka and EMQX were used to fan out messages asynchronously and reduce coupling between services.
The result was:
16,000+ concurrent connections per node
Sub-100ms latency
Stable operation in an 8GB memory environment
Distributed Consistency
One of the most important parts of the project was ensuring consistency in event-driven workflows.
In Group Service, I introduced and applied:
Outbox Pattern
Event Forwarder
Redis Pub/Sub delivery
This was used to keep business operations and event publication aligned for operations such as:
Group creation
Group updates
Group avatar changes
The flow looked like this:
MySQL transaction
↓
Business data write
↓
Outbox event write
↓
Commit
↓
Event Forwarder
↓
Kafka / Redis
↓
Downstream consumers
Group Module Delivery
I also worked on the group avatar update API:
PUT /api/v1/groups/:id/avatar
That work included:
Owner permission checks
Admin permission checks
Transaction handling
Event publishing
CI test fixes
Engineering Cleanup
The project also had a lot of legacy engineering friction:
gRPC dependency conflicts
Git history contamination
CI/CD build failures
Broken tests
I helped clean that up through:
Test repairs
Makefile improvements
Clean-branch migration
PR-ready delivery
Why This Case Matters
This is not a simple CRUD project.
It combines:
Go microservices
Realtime messaging
Kafka
MQTT
Redis
WebSocket
Distributed consistency
Event-driven architecture
High-concurrency IM
For backend and platform teams, the useful signal is not just “can code in Go.”
The stronger signal is that I can help design, implement, stabilize, and ship a distributed realtime system under real constraints.
Interview-Friendly Summary
Co-designed and implemented a distributed real-time messaging platform using Go microservices, Kafka, EMQX (MQTT), Redis, MySQL and MongoDB. Designed event-driven workflows with Outbox Pattern and Event Forwarder to guarantee transactional consistency. Delivered group management, realtime messaging and WebSocket services supporting 16,000+ concurrent connections per node with sub-100ms latency under constrained 8GB memory environments.