Skip to content

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