AWS ยท Kubernetes ยท DevOps ยท Streaming ยท CDN ยท EKS ยท SRE

How JioHotstar Engineered 82.1 Crore Concurrent Streams - A DevOps Deep Dive into the T20 World Cup 2026 Final

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:

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.

Cost Architecture - Scaling Efficiently


Key Takeaways for DevOps Engineers


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.

โ† All Posts