Ravindra BagaleCourses & study guides Track your progress

Guides

Netflix Architecture Explained: How Netflix Uses AWS and Open Connect

Short answer: Netflix runs almost all of its software on Amazon Web Services (AWS) as hundreds of Java microservices, using tools it built and open-sourced, such as Zuul (API gateway), EVCache (cache) and Atlas (metrics), with Cassandra as a main database. But the actual video does not come from AWS. It comes from Open Connect, Netflix's own content delivery network, with servers placed inside internet providers. Netflix finished moving to AWS in January 2016.

What does Netflix's architecture look like today (2024 to 2026)?

Here are the main parts of Netflix's current system:

  1. Four AWS regions, full-active: since 2024, member state is replicated to four AWS regions using Cassandra, and any region can serve you. Near caches serve billions of requests per second, and EVCache serves tens of millions per second.
  2. Key-Value Data Abstraction Layer (2024): instead of each team talking directly to Cassandra, EVCache or other stores, services use one simple key-value API, and the platform team chooses and tunes the database underneath.
  3. Write-Ahead Log (2025): a shared log service, built with Kafka and Amazon SQS, records changes before they reach databases so data can be replayed and repaired after failures.
  4. Live streaming (2025): after three years of live events, Netflix built a live pipeline. Its Live Origin (December 2025) stores live video segments using the KV layer, Cassandra and EVCache, and Open Connect delivers them.
  5. Federated GraphQL (since 2022): the mobile apps moved from the older Falcor API to Federated GraphQL in 2022.

Suppose you open Netflix and press Play

It is Saturday night in Nashik. You open Netflix on your TV, scroll the home page and press Play on a series. The video starts in two seconds in HD. Here is what happens behind the screen:

  1. The Netflix app on your TV sends requests to Netflix's backend, which runs on AWS.
  2. The requests enter through an API gateway called Zuul.
  3. Many small services work together to build your home page: your profile, your rows ("Continue Watching", "Top 10 in India"), the artwork.
  4. These services read fast data from a cache called EVCache and lasting data from databases like Cassandra.
  5. When you press Play, a service on AWS checks your device, your network and your plan, and picks the best Open Connect servers for you.
  6. Your TV then downloads the video from an Open Connect Appliance — often a Netflix server sitting inside your own internet provider's network.

So Netflix has two halves: the control plane (everything before Play, on AWS) and the data plane (the video bytes, on Open Connect).

What architecture style does Netflix use?

Netflix is the most famous example of cloud-native microservices. A microservice is a small program that does one job and talks to other services over the network.

  1. Microservices instead of one big app: after a major database corruption in August 2008 stopped DVD shipping for three days, Netflix decided to move away from single points of failure. It rebuilt its monolithic Java application as many cloud-based Java microservices.
  2. Built for failure: Netflix expects servers and even whole regions to fail. It famously runs tests like Chaos Monkey, which randomly stops production instances to prove the system survives.
  3. Multi-region active-active: today member state is replicated to four AWS regions (2024). How it started: in 2013 Netflix ran active-active in two regions, and by 2016 in three (us-east-1, us-west-2, eu-west-1), with Chaos Kong drills that move all traffic out of one region.
  4. Separate video delivery: heavy video traffic goes through Open Connect, so the cloud handles only the "brain" work.
  5. Everything is open-sourced: many Netflix tools are public on GitHub (Zuul, Eureka, EVCache, Atlas, Titus, Spinnaker, Chaos Monkey).

Netflix architecture diagram (public parts)

Press Play to follow your request, from opening the app to the video arriving from Open Connect.

Watch the orange dot follow each numbered step.
Netflix architecture from public information (simplified): AWS control plane plus Open Connect CDNAWS cloud: several regions in the US and Europe (control plane)Open Connect CDN: Netflix servers inside ISPs and internet exchanges (data plane)Simplified; based on publicly shared information.Your deviceTV, phone, laptopZuul gatewayAPI edge on AWSJava microservicesEC2 + TitusEVCachememcached-based cacheCassandra (+ MySQL)members, history, billingAmazon S3source video, data lakeAtlas + Kafkametrics, eventsOpen Connect Appliancesvideo files cached near you
  1. You open the Netflix app. It talks to Netflix's backend on AWS.
  2. Requests enter through the Zuul API gateway.
  3. Zuul routes each call to the right Java microservice (profiles, rows, search).
  4. Microservices read hot data from EVCache first.
  5. Lasting data (viewing history, member info) lives in Cassandra; billing uses MySQL.
  6. Every service sends metrics to Atlas and events into Kafka pipelines.
  7. You press Play. A playback service on AWS picks the best Open Connect servers for you.
  8. The video streams from an Open Connect Appliance, often inside your own ISP.
  9. Your device plays the video. AWS was never in the video path.
Diagram 1: the real public parts of Netflix. Everything before you press Play runs on AWS; the video bytes come from Open Connect. Open the diagram as an image (PNG) · WebP

What does Netflix use? Main technologies

LayerWhat Netflix uses (public)What it does in simple words
LanguageMostly Java; Spring Boot as the core framework since 2018Writes most backend services
API gatewayZuul 2 (built on Netty)Front door for all cloud traffic; over 1 million requests per second in 2018
Device API layerFederated GraphQL (mobile apps moved from Falcor in 2022)One API over hundreds of services
Service discoveryEurekaHelps services find each other
CacheEVCache (built on memcached)Very fast reads across regions
Data accessKey-Value Data Abstraction Layer (2024)One simple API over many databases
DatabasesCassandra; MySQL for billingMember data, history, payments
ContainersTitus (on EC2)Runs containers for services and batch jobs
DeploymentsSpinnakerSafe, automated releases to the cloud
Data pipelineKafka (Keystone pipeline)Moves events for analytics
MetricsAtlasTime-series monitoring and alerting
Video deliveryOpen ConnectNetflix's own CDN inside ISPs

Which cloud provider does Netflix use?

Netflix uses AWS. In February 2016 Netflix completed its cloud migration. It chose AWS "because it provided us with the greatest scale and the broadest set of services and features".

How it started: the move to AWS (2008 to 2016)

The journey took seven years:

  1. 2008: the database corruption incident; the move to the cloud begins.
  2. Before 2015: all customer-facing services already on AWS.
  3. January 2016: billing and the last data centre parts moved; Netflix shut down its remaining streaming data centre systems.
  4. January 6, 2016: Netflix launched in 130+ new countries, using multiple AWS regions around the world.

Netflix relies on the cloud for business logic, distributed databases, big data, recommendations, video transcoding (converting one master file into many formats) and hundreds of other functions. Only video delivery is done by Open Connect.

What is Netflix Open Connect?

Video is huge. If every Netflix viewer pulled video from a cloud region far away, the internet would be very slow and very expensive. So Netflix built its own CDN.

  1. Netflix designs servers called Open Connect Appliances (OCAs), full of disks that store video files.
  2. Netflix provides these appliances free of charge to qualifying ISPs (the ISP gives power, space and connectivity), and also installs OCAs at internet exchange points.
  3. OCAs fill up during an off-peak fill window agreed with each ISP (by default 2 AM to 2 PM local time). Because Netflix can predict what members will watch, it pushes most new content to OCAs before people ask for it. Netflix calls this proactive caching.
  4. When you press Play, the control plane on AWS tells your device which OCAs to use.
  5. Your device streams from the closest healthy OCA. Often the video never leaves your ISP's network.

How does Netflix store data?

  1. Amazon S3 holds source video files and Netflix's big data warehouse (data lake).
  2. Cassandra stores member data such as viewing history, replicated across regions.
  3. EVCache keeps copies of hot data in memory in every region for very fast reads. When data changes, a message through Amazon SQS tells the other regions to invalidate their old copy (2013).
  4. MySQL: when Netflix moved billing to AWS, it moved from Oracle to MySQL running on EC2 for payment data that needs ACID transactions, and moved subscriber data to Cassandra.
  5. Encoded video files are pushed out to Open Connect Appliances worldwide.

How does Netflix monitor its systems?

  1. Atlas: Netflix's open-source time-series telemetry platform for metrics, dashboards and alerts.
  2. Keystone: Netflix's Kafka-based data pipeline and stream processing platform. By 2018 it processed trillions of events and petabytes of data per day.
  3. Chaos engineering (Chaos Monkey and the earlier Simian Army) regularly tests that failures do not hurt members.
  4. Exact internal dashboards and alert rules are not publicly shared in full.

If we built an app like Netflix on AWS (illustrative)

Please read this first

This section is a learning design by Ravindra Bagale. It is not Netflix's real setup. Netflix uses its own tools (Titus, Zuul, EVCache) and its own CDN. Here we use standard AWS services you learn in the AWS course.

Suppose you want to build "MarathiFlix", a streaming app for Marathi films. Here is a simple AWS layout.

1. Network: VPC, subnets, route tables, gateways

  1. Create a VPC 10.0.0.0/16 in Mumbai, spread over two Availability Zones.
  2. Each AZ gets a public subnet (ALB, NAT gateway), a private app subnet (API pods) and a private data subnet (Aurora, ElastiCache).
  3. Attach an internet gateway. Public route table: 0.0.0.0/0 → IGW.
  4. Private app route table: 0.0.0.0/0 → NAT gateway (outbound only).
  5. Private data route table: local route only.

2. Compute

  1. Application Load Balancer across both public subnets.
  2. API services on Amazon EKS (or EC2 Auto Scaling groups) in the private app subnets.
  3. Video transcoding jobs with AWS Elemental MediaConvert, triggered when a new film lands in S3.

3. Storage, databases and video delivery

  1. S3 for master films and encoded video segments (HLS/DASH).
  2. CloudFront to deliver video segments and posters from edge locations. (Netflix uses Open Connect instead.)
  3. Aurora for accounts and plans; DynamoDB for watch history; ElastiCache for home page rows.
  4. Kinesis to collect play, pause and stop events for analytics.

4. Monitoring

  1. CloudWatch alarms on ALB errors, latency and CloudFront error rates.
  2. X-Ray traces to find slow services; CloudWatch Logs for app logs.
  3. Practise failure: use AWS Fault Injection Service to stop a test instance, the AWS way of doing Chaos Monkey-style tests.

Request flow diagram

Press Play and follow the numbered steps.

Watch the orange dot follow each numbered step.
If we built a Netflix-like app on AWS (illustrative)AWS Region (for example ap-south-1, Mumbai)VPC 10.0.0.0/16Availability Zone AAvailability Zone BPublic subnet 10.0.1.0/24RT: 0.0.0.0/0 → IGWPublic subnet 10.0.2.0/24RT: 0.0.0.0/0 → IGWApp subnet 10.0.11.0/24RT: 0.0.0.0/0 → NATApp subnet 10.0.12.0/24RT: 0.0.0.0/0 → NATData subnet 10.0.21.0/24RT: local onlyData subnet 10.0.22.0/24RT: local onlyvia VPC endpointsIllustrative learning design only. This is NOT the company's real setup.Userphone appRoute 53DNS lookupCloudFrontCDN edge cacheAmazon S3video segmentsIGWApplication Load Balancerspans both AZsNAT gatewayNAT gatewayAPI serviceEKS pods (auto scaling)API serviceEKS pods (auto scaling)ElastiCachehome rows cacheAuroraplans, usersElastiCachehome rows cacheAuroraread replicaKinesisviewing eventsDynamoDBwatch historyCloudWatch + X-Raymetrics, logs, traces
  1. You open the app. Route 53 finds the address of the service.
  2. Posters, trailers and video segments come from CloudFront, the nearest edge location.
  3. On a cache miss, CloudFront pulls the file once from S3, where encoded videos are kept.
  4. API calls (home page rows, search) enter the VPC through the internet gateway.
  5. The Application Load Balancer sends the call to a healthy API pod in AZ A or AZ B.
  6. The API service on EKS runs in a private subnet and builds your home page.
  7. It reads ready-made rows from ElastiCache first.
  8. Plans and accounts come from Aurora; watch history lives in DynamoDB.
  9. Each play, pause and stop is sent as an event into Kinesis for analytics.
  10. CloudWatch and X-Ray record latency, errors and traces for every step.
  11. The page goes back to your device, and the video plays from CloudFront.
Diagram 2: an illustrative AWS design for learning. Netflix does not use this exact setup; for example its video comes from Open Connect, not CloudFront. Open the diagram as an image (PNG) · WebP

Netflix versus our AWS design

PartNetflix (public info)Our AWS design
CloudAWS, four regions full-active (2024)AWS, one region, two AZs
Front doorZuul gatewayALB
ComputeEC2 + Titus containersEKS or EC2 Auto Scaling
CacheEVCacheElastiCache
DatabasesCassandra, MySQLAurora, DynamoDB
Video deliveryOpen Connect CDNCloudFront
EventsKafka (Keystone)Kinesis
MonitoringAtlas, chaos testingCloudWatch, X-Ray, FIS

Quick quiz: check what you learned

  1. Where does Netflix video actually stream from?

    1. Open Connect Appliances
    2. EC2 web servers in AWS
    3. Amazon RDS database
    4. Zuul API gateway
    Show answer

    A. Video comes from Netflix's own Open Connect CDN, not from AWS.

  2. What event started the Netflix move to the cloud?

    1. A big AWS price cut
    2. A major database corruption
    3. A new country launch
    4. A hacker attack on servers
    Show answer

    B. In August 2008 a database corruption stopped DVD shipping for three days.

  3. What is Zuul in the Netflix architecture?

    1. A video encoding tool
    2. A metrics dashboard
    3. An API gateway service
    4. A billing database
    Show answer

    C. Zuul is the front door that routes device requests to services.

  4. In our AWS design, what replaces Open Connect?

    1. Amazon Aurora database
    2. Amazon SQS queues
    3. AWS NAT gateway
    4. Amazon CloudFront CDN
    Show answer

    D. For learning, we use CloudFront to deliver video segments from the edge.