The System Design Newsletter

The System Design Newsletter

Share this post

The System Design Newsletter
The System Design Newsletter
How Disney+ Scaled to 11 Million Users on Launch Day
Copy link
Facebook
Email
Notes
More

How Disney+ Scaled to 11 Million Users on Launch Day

#42: A Simple Introduction to Disney+ Architecture (5 minutes)

Neo Kim's avatar
Neo Kim
Apr 02, 2024
91

Share this post

The System Design Newsletter
The System Design Newsletter
How Disney+ Scaled to 11 Million Users on Launch Day
Copy link
Facebook
Email
Notes
More
8
11
Share

Get my system design playbook for FREE on newsletter signup:


This post outlines how Disney+ scaled to 11 million users on launch day. If you want to learn more, scroll to the bottom and find the references.

  • Share this post & I'll send you some rewards for the referrals.

Once upon a time, there lived a teenager named Olivia.

Disney Architecture

She’s a big fan of Marvel and Pixar movies.

But she couldn’t find all the movies she wanted to watch on her streaming service.

So she was unhappy.

She hears about the launch of a new video streaming service called Disney+.

And got hooked as it had everything she ever wished for.

She buys a Disney+ subscription on the very first day.

system design newsletter

Programming Digest (Featured)

Programming Digest is a free carefully curated weekly newsletter for software engineers. Read 5 handpicked articles with short summaries. And learn something new every week.

Try it


Disney Architecture

Here’s a simplified version of Disney+ architecture:

1. A Tuesday Evening

Olivia streams a movie named Dark Phoenix on Android TV.

Infrastructure Running in Many Regions for Low Latency and High Availability
Infrastructure Running in Many Regions for Low Latency and High Availability

They run infrastructure across many regions. Because it helps with failover when infrastructure in a region fails. And routes the user to the nearest region.

Besides they serve videos from CDN for low latency. The content delivery network (CDN) improves performance by caching videos closer to users. While videos get stored in an object storage to lower costs.

2. An Hour Later

Olivia takes a dinner break before finishing the movie.

Storing the Last Viewed Timestamp of a Video
Storing the Last Viewed Timestamp of a Video

They send the video timestamp as a data stream while the user watches the movie. And the server stores it in a key-value database.

They use the Kinesis to stream data. Think of Kinesis stream as a data streaming service for processing large amounts of data.

While a global table in DynamoDB stores the video timestamp for flexibility. A global table is a DynamoDB feature that replicates data across many regions automatically. It offers high availability.

Disney+ Architecture

Olivia resumes the movie on her mobile phone.

So they find the video timestamp where she left off. And streams it from there.

3. Fifty Minutes Later

Olivia finishes watching the movie.

But was a little disappointed with it.

So she searches the movie catalog for something more interesting.

Caching Video Metadata Using Cache-Aside Pattern
Caching Video Metadata Using Cache-Aside Pattern

They store the movie catalog in a document data store. Because it offers a flexible schema for movie metadata and user reviews.

Also they cache the popular queries in a key-value database. It buffers requests, thus reducing the load on the document data store.

Although DynamoDB isn't the best choice, they use it for caching. Because they couldn't predict the user traffic during launch. And scaling an in-memory cache would be extra effort and difficult.

Besides DynamoDB keeps things simple as they already used it in their architecture. That means reduced operational complexity.

Yet Olivia couldn’t find any interesting movies to watch.

4. Some Minutes Later

So she starts exploring the Disney+ home page.

And sees the recommendations list.

High-Level Architecture of Disney+ Recommendations
High-Level Architecture of Disney+ Recommendations

They use machine learning to recommend movies. It's based on various factors like location and watch history. Imagine machine learning as studying data patterns to make better predictions.

They send this list as a data stream and do some extra processing on it for correctness. After that, they store the result in a key-value database.

Olivia finds an interesting movie named Lilo & Stitch.

But has little time in the day to watch it.

5. Time for Bed

So she adds that movie to her watchlist.

Storing the User Watchlist in a Key-Value Database
Storing the User Watchlist in a Key-Value Database

They store the movies put on the watchlist in a key-value database.

And uses the global table in DynamoDB to keep it simple. This means the watchlist is automatically synchronized across many regions. So a failover wouldn’t show an outdated watchlist to the user.

Disney Plus Architecture

While Olivia was excited about the movie days to come.

And went happily to bed.

system design newsletter

DynamoDB automatically partitions a table as traffic grows. Yet partitioning takes time. And the traffic gets throttled if it exceeds a specific limit before partitioning occurs. So they pre-partitioned the tables before launch to avoid throttling. And autoscaled the database to handle growing traffic.

Besides the metadata of a popular movie gets more read traffic than others. So they replicate the metadata of a video across many database partitions. And randomly route the reads to a partition to prevent the hot shard problem.

Disney+ has grown to around 149 million users. And remains one of the biggest video streaming services in the market.


Consider subscribing to get simplified case studies delivered straight to your inbox:


Author NK; System design case studies
Follow me on LinkedIn | YouTube | Threads | Twitter | Instagram

Thank you for supporting this newsletter. Consider sharing this post with your friends and get rewards. Y’all are the best.

system design newsletter

Share


How Amazon Scaled E-commerce Shopping Cart Data Infrastructure

How Amazon Scaled E-commerce Shopping Cart Data Infrastructure

Neo Kim
·
March 26, 2024
Read full story
How Tinder Scaled to 1.6 Billion Swipes per Day

How Tinder Scaled to 1.6 Billion Swipes per Day

Neo Kim
·
March 19, 2024
Read full story

References

  • AWS re: Invent 2020: How Disney+ scales globally on Amazon DynamoDB

  • A Disney Technology Blog

  • DynamoDB: Read/write capacity mode

  • Amazon DynamoDB global tables

  • How Disney+ is Changing the Streaming Industry through Industrial Convergence

  • Wikipedia: Disney+

  • What is Amazon CloudFront?

  • Document Database versus Relational Database: how to choose?

  • Disney+ surpasses 10 million subscribers on the first day

Fabio Cencetti's avatar
Shariq Nadeem Malik's avatar
Hemant Pandey's avatar
Nicola Ballotta's avatar
Madan Kumar Y's avatar
91 Likes∙
11 Restacks
91

Share this post

The System Design Newsletter
The System Design Newsletter
How Disney+ Scaled to 11 Million Users on Launch Day
Copy link
Facebook
Email
Notes
More
8
11
Share

Discussion about this post

User's avatar
Daniel's avatar
Daniel
Apr 2, 2024

Love your posts but imho, you use too many short sentences, it really takes me as a reader out of the narrative thought sometimes.

Expand full comment
Like (6)
Reply
Share
1 reply by Neo Kim
Basma Taha's avatar
Basma Taha
Apr 2, 2024

Light yet informative read, Neo! Thank you for putting the effort.

Expand full comment
Like (2)
Reply
Share
1 reply by Neo Kim
6 more comments...
8 Reasons Why WhatsApp Was Able to Support 50 Billion Messages a Day With Only 32 Engineers
#1: Learn More - Awesome WhatsApp Engineering (6 minutes)
Aug 27, 2023 â€¢ 
Neo Kim
742

Share this post

The System Design Newsletter
The System Design Newsletter
8 Reasons Why WhatsApp Was Able to Support 50 Billion Messages a Day With Only 32 Engineers
Copy link
Facebook
Email
Notes
More
24
How PayPal Was Able to Support a Billion Transactions per Day With Only 8 Virtual Machines
#30: Learn More - Awesome PayPal Engineering (4 minutes)
Dec 26, 2023 â€¢ 
Neo Kim
250

Share this post

The System Design Newsletter
The System Design Newsletter
How PayPal Was Able to Support a Billion Transactions per Day With Only 8 Virtual Machines
Copy link
Facebook
Email
Notes
More
14
How Stripe Prevents Double Payment Using Idempotent API
#45: A Simple Introduction to Idempotent API (4 minutes)
May 9, 2024 â€¢ 
Neo Kim
383

Share this post

The System Design Newsletter
The System Design Newsletter
How Stripe Prevents Double Payment Using Idempotent API
Copy link
Facebook
Email
Notes
More
30

Ready for more?

© 2025 Neo Kim
Publisher Privacy
Substack
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture

Share

Copy link
Facebook
Email
Notes
More

Create your profile

User's avatar

Only paid subscribers can comment on this post

Already a paid subscriber? Sign in

Check your email

For your security, we need to re-authenticate you.

Click the link we sent to , or click here to sign in.