On March 8, 2026, India defeated New Zealand by 96 runs in the ICC Men's T20 World Cup Final at the Narendra Modi Stadium in Ahmedabad. India posted 255/5 - the highest total ever in a T20 World Cup final - and became the first team to retain the T20 World Cup title. 86,000 fans roared inside the stadium. Hundreds of millions watched on screens across every corner of India and the world.
And JioHotstar? It didn't just survive. It rewrote history.
The concurrent viewership peaked at 82.1 crore simultaneous streams during the post-match presentation ceremony. Let that number sink in - 821 million streams at a single moment, from a single platform, from a single country. For context, the previous T20 WC final in 2024 recorded a peak concurrency of just 5.3 crore on Disney+ Hotstar. In two years, they scaled peak concurrency by more than 15x. That is not an accident - that is an engineering masterclass.
This post breaks down the infrastructure, architecture, and DevOps strategy that made this possible.
The Demand Curve - A Textbook Case for Capacity Planning
The viewership built up gradually before hitting a crescendo:
- 2.1 crore - During Ricky Martin's opening performance
- 4.2 crore - At the toss
- 43.9 crore - End of India's innings
- 44.3 crore - Innings break
- 49.9 crore - New Zealand start chasing
- 74.5 crore - Last wicket falls
- 82.1 crore - Post-match presentation
This is a textbook demand curve for any DevOps engineer to study - a slow warm-up, a steep mid-event ramp, and a vertical spike at the moment of maximum drama.
The Foundation - Who is JioHotstar?
By late 2024, Reliance Industries (through Viacom18) and The Walt Disney Company announced an $8.5 billion joint venture called JioStar. This merger gave the DevOps teams something rare: two battle-hardened streaming backends to draw lessons from. The 2026 World Cup was the first true test of whether the combined architecture could handle something neither had ever attempted alone.
Pre-Tournament Planning - How You Prepare for an 82-Crore Spike
Traffic Forecasting
Engineers built regression models trained on data from past streaming events. The models factored in match context (is India playing?), time of day, tournament stakes (group vs knockout vs final), and network conditions across India's geography.
Load Testing - Project HULK
JioHotstar created an in-house project called "Project HULK" to stress-test their platform. The load generation infrastructure used c5.9xlarge machines distributed across 8 different AWS regions to hit the CDN, load balancer, and application layers simultaneously.
Pre-warming - The Underrated Hero
Before the opening performance even started, JioHotstar's edge nodes, CDN caches, and application clusters were already scaled up and warm. You don't wait for traffic to arrive - you meet it at the door.
The Kubernetes Architecture - DataCenter Abstraction
The Old World
Previously, Hotstar managed workloads on two large, self-managed Kubernetes clusters built using KOPS, running 800+ microservices. Every microservice had its own AWS ALB using NodePort services. Every time a major tournament began, ops teams had to manually pre-warm hundreds of load balancers.
Client โ CDN โ ALB โ NodePort โ kube-proxy โ Pod
The New Model - DataCenter Abstraction
A central Envoy proxy replaced ~200+ individual ALBs. Services moved from NodePort to ClusterIP + ALB Ingress. JioHotstar could treat its AWS infrastructure across Mumbai, Hyderabad, and Delhi as a single logical pool.
The Migration to Amazon EKS
The old KOPS clusters couldn't scale reliably beyond ~25 million users. During benchmarking, scaling beyond 400 nodes simultaneously caused API server throttling. The fix: a step-wise scaling approach - adding 100-300 nodes per step.
# Karpenter NodePool - simplified example
apiVersion: karpenter.sh/v1beta1
kind: NodePool
metadata:
name: live-streaming-pool
spec:
template:
spec:
requirements:
- key: "node.kubernetes.io/instance-type"
operator: In
values: ["c6i.8xlarge", "c6g.8xlarge", "c5.9xlarge"]
- key: "karpenter.sh/capacity-type"
operator: In
values: ["on-demand", "spot"]
- key: "topology.kubernetes.io/zone"
operator: In
values: ["ap-south-1a", "ap-south-1b", "ap-south-1c"]
kubelet:
maxPods: 110
limits:
cpu: "8000"
memory: "16Ti"
disruption:
consolidationPolicy: WhenUnderutilized
expireAfter: 720h
Infrastructure Scaling - Eliminating Bottlenecks
NAT Gateway Scaling
VPC Flow Logs revealed that a single Kubernetes cluster was using 50% of its NAT Gateway throughput at just 10% of expected peak load. The solution: scale from one NAT Gateway per AZ to one per subnet.
Worker Node Network Optimization
Load tests showed API Gateway pods consuming 8-9 Gbps on individual nodes. The fix: deploy 10 Gbps nodes with topology spread constraints:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: api-gateway
The Video Pipeline - From Camera to 82 Crore Phones
Ingestion
Raw feeds traveled via dedicated broadcast fiber links and SRT (Secure Reliable Transport) protocol, which provides approximately 20% packet loss recovery compared to RTMP.
Transcoding
Raw feeds hit AWS Elemental MediaLive on p4d.24xlarge GPU instances, transcoding multiple adaptive renditions in under 2 seconds - from 360p (2G/3G users in rural India) to 4K HDR (premium subscribers on fiber or 5G).
Packaging & Storage
AWS MediaPackage segments streams into HLS/DASH chunks at over 100,000 chunks per second, applies DRM encryption, and adds captions dynamically. CloudFront delivers via 300+ edge locations worldwide.
The CDN Layer - The True Workhorse
JioHotstar employs a multi-CDN strategy - dynamically choosing between Akamai, CloudFront, and others via an in-house optimizer. The Jio Network advantage: Jio's 5G MEC servers deliver streams from nodes physically co-located within the Jio RAN infrastructure - effectively zero-hop delivery.
Observability - The War Room
CloudWatch + Prometheus + Grafana formed the monitoring stack. The key metric: rebuffer rate.
# Prometheus alert rule for rebuffer rate
sum(rate(media_rebuffer_events[5m])) / sum(rate(media_play_time[5m])) > 0.004
At 82 crore viewers, 0.4% means 3.28 crore people buffering simultaneously. Every metric had automated alerts. Every alert had a documented runbook.
Caching Strategy - Keeping 82 Crore Sessions Alive
The guiding principle: the fewer database queries per stream second, the better. A well-designed caching layer means 82 crore viewers might generate fewer database queries than 5 lakh viewers on a poorly designed system.
- Layer 1 - CDN Edge Cache: Video segments served from CloudFront PoPs. If cached, JioHotstar's origin never sees the request.
- Layer 2 - Redis: Session tokens and subscription entitlements cached. Verified once at playback start.
- Layer 3 - Read Replicas: User preferences served from multiple read replicas across AZs.
Cost Architecture - Scaling Efficiently
- Total cost per 1M viewers: approximately $0.87โ$0.92
- S3 Intelligent-Tiering + Spot instances: brought total costs approximately 22% under budget
- AI-powered bitrate optimization: 25% average bitrate reduction without quality loss
Key Takeaways for DevOps Engineers
- Automation over manual processes. At 82 crore scale, there is no time for human intervention in the scaling loop.
- Data-driven capacity planning. Use past data to set clear targets. Validate with load testing. Revise projections after each match.
- Layered optimization. From the CDN edge, down to the Kubernetes node, down to the NAT gateway. Every layer matters.
- Managed services. EKS offloads control plane complexity so the team focuses on workloads, not masters.
- Infrastructure as Code. 800+ microservices - every resource declared in code, version-controlled in Git, deployed through CI/CD.
- Observability is not optional. Every alert has a runbook. Every runbook is practiced.
- Graceful failure. Feature flags as kill switches. Fallback to static images rather than blank screens.
The Final Score
86,000 happy fans sang Vande Mataram inside the Narendra Modi Stadium as India lifted their third T20 World Cup. And 82.1 crore people watched it happen - simultaneously, on a single platform - without a single major outage.
India won on the field. JioHotstar won in the server room.
The next time you're tempted to skip the chaos drill or leave the pre-warming script manual, remember: someone at JioHotstar ran that drill at 2 AM so that 82 crore people could watch Bumrah take his 4th wicket on the smoothest stream of their lives.
Sources: ICC official press releases, ESPNcricinfo, Business Standard, ByteByteGo Engineering Blog, AWS Architecture references, and JioHotstar official communications.