Case Study
Real-time Taxi Platform
Deqode · 2019 — 2023
WebSocket-based live tracking system supporting 5,000+ daily rides with sub-second geolocation updates.
ReactNode.jsWebSocketsGoogle Maps
Problem Statement
Riders and drivers needed live map synchronization with acceptable latency across heterogeneous mobile networks. Existing HTTP polling was too slow and bandwidth-heavy.
WebSocket Fan-Out with Geo Indexing
I worked on a websocket fan-out with geo indexing where:
- Persistent WebSocket connections per active session
- Redis pub/sub to broadcast location updates to riders
- Batched geohash indexing for fast map tile queries
- Heartbeat + reconnect logic for flaky mobile connections
- Google Maps SDK custom markers and live trajectories
Driver App
→WebSocket Gateway
→Redis Pub/Sub
→Rider App (React + Maps)
→Trip History DB
My Contributions
- Implemented WebSocket server with room-based broadcasting
- Built live map UI with React + Google Maps custom overlays
- Optimized payload size via protobuf over websocket frames
- Added client-side reconnect with exponential backoff
- Reduced dropped ride events by 20% with queue replay
Engineering Trade-offs
- Accepted higher server memory footprint for connection state
- Chose room-based routing for predictable scaling before full microservices
- Lowered update frequency during idle to save client battery
Impact
5,000+
daily active rides supported
<1s
average location latency
20%
fewer dropped location events
3x
reduction in API bandwidth usage