Engineering India Today's Election Dashboard: Real-Time Data at Scale
Behind the scenes of building India Today's live election results dashboard — handling 10,000+ constituency results in real-time with WebSockets, React, and Node.js.
- Topic
- React.js
- Reading time
- 8 min
- Length
- 190 words
- Published
- Jan 15, 2026
In this article
Election night at India Today Group is the Super Bowl of Indian tech media. Millions of concurrent users watching live results. Zero tolerance for downtime. Here's how we engineered it.
The Challenge
Displaying real-time results for 543 Lok Sabha constituencies + 4000+ state assembly seats with sub-second updates to millions of concurrent viewers.
Building and maintaining personal products and freelance projects alongside full-time workArchitecture
EC Data Feed → Node.js Ingestion → Redis Pub/Sub → WebSocket Gateway
→ CDN (static) + SSE/WS (dynamic) → React Dashboard
Key Decisions
Server-Sent Events over WebSockets — for the public dashboard, SSE is simpler, works through CDN, and handles millions of one-way connections better than bidirectional WebSockets.
React with Canvas — the India map visualization renders 543 constituency polygons. DOM would choke at this scale, so we use Canvas with React for the controls.
Redis for pub/sub — when a result comes in, it's published to Redis. All WebSocket gateway instances subscribe and push to connected clients within 200ms.
Results
Handled 5 million+ concurrent users on election night with 99.99% uptime and sub-500ms update latency. The dashboard became one of India Today's most-visited features.