DEV Community

Cover image for System Design - EP 13: Content Delivery Networks (CDNs)
Hrishikesh Dalal
Hrishikesh Dalal

Posted on

System Design - EP 13: Content Delivery Networks (CDNs)

We’ve all been there. You click a link, and the page hangs. You stare at the loading spinner, your patience draining with every second. In 2026, a slow website isn't just annoying; it’s a dealbreaker.

As developers, we know Speed = Revenue. But how do you make a website fast for a user in Tokyo when your server is sitting in a basement in New York?

Enter the CDN (Content Delivery Network).

If you've ever nodded along while someone said "just put it behind Cloudflare" but were secretly fuzzy on the details, this article is for you. Let's break down CDNs using a scenario we can all understand: The Global Pizza Empire.


The Scenario: "Uncle Tony's Pizza"

Imagine you run the world's best pizza shop, Uncle Tony's, located in New York City. Your pizza is legendary. People fly in from all over the world just to get a slice.

In technical terms, your New York shop is the Origin Server. It is the single source of truth where the pizza (content) is created.

The Problem: The Latency Delivery

One day, you decide to offer global delivery.

  • Customer A lives in Brooklyn (5 miles away). They get their pizza hot and fresh in 20 minutes.
  • Customer B lives in London (3,500 miles away). You have to bake the pizza in NY, put it on a supersonic jet, and fly it to London. It arrives 6 hours later, cold and soggy.

This delay is Latency. In the web world, even if your server (New York Kitchen) is super fast, the physical distance to the user (London Customer) creates unavoidable lag.


The Solution: The Franchise Model (The CDN)

You realize you can't defy physics. You can't make the jet faster. So, you change your strategy. You open small, reheating stations in major cities around the world: London, Tokyo, Mumbai, and Sydney.

These stations are your Edge Servers. They don't have the full kitchen setup of the NYC headquarters, but they are capable of holding inventory.

How the "Caching" Works

You can't bake every single unique pizza at these small stations. Instead, you look at your data. You realize 80% of people just order Pepperoni or Cheese.

  1. The First Request (Cache Miss): A guy in London orders a Pepperoni pizza. The London station is empty. They call the NY HQ, get a Pepperoni pizza flown over, and deliver it. It’s slow, but now the London station keeps a stash of 50 frozen Pepperoni pizzas in their freezer.
  2. The Second Request (Cache Hit): Ten minutes later, a girl in London orders a Pepperoni pizza. The London station checks its freezer. Bingo! They grab one, heat it up, and deliver it in 10 minutes. They didn't even call New York.

The Theory: Key Concepts in CDNs

Now that we understand the pizza model, let's look at the actual technical terms you'll need for your system design interviews or cloud configs.

1. Edge Servers

These are geographically distributed servers where CDN providers (like Cloudflare, Akamai, or Fastly) cache your content. Users are routed to the nearest edge server for faster delivery.

  • Pizza Translation: The local reheating stations in London or Tokyo.

2. Origin Server

This is your main web server (e.g., an AWS EC2 instance or S3 bucket). The CDN fetches content from here only if it’s not already cached at the edge server.

  • Pizza Translation: The main Uncle Tony's Kitchen in New York.

3. Caching

CDNs store copies of your static content (e.g., images, videos, CSS, HTML) in their edge servers. Cached content is served directly to users, reducing the need for frequent requests to the origin server.

  • Pizza Translation: Storing frozen Pepperoni pizzas in the local freezer so you don't have to bake a fresh one every time.

4. TTL (Time to Live)

The duration for which a file is cached on a CDN edge server.
Example: An image might have a TTL of 24 hours. This means it stays cached for 24 hours; after that, the Edge Server assumes it might be stale, deletes it, and fetches a fresh copy from the Origin.

  • Pizza Translation: The expiration date on the frozen pizza. You throw it out after 24 hours to ensure quality.

5. GeoDNS

CDNs use GeoDNS to route users to the nearest edge server based on their geographic location. When a user types in your URL, the DNS resolver looks at their IP address and says, "You're in Germany? Okay, talk to the Frankfurt server, not the New York one."

  • Pizza Translation: The call center routing your order to the nearest branch automatically.

Why this Architecture Wins

1. Speed (Performance)

Your users in Tokyo aren't downloading images from New York anymore; they are downloading them from a server in Shinjuku. The data travels fewer miles, reducing the Time to First Byte (TTFB).

2. Scalability (Traffic Spikes)

Imagine it's Super Bowl Sunday. Everyone calls New York at once. The phone lines jam. The kitchen catches fire.
With the Franchise model (CDN), the New York kitchen only handles the weird custom orders. The millions of standard Pepperoni orders are handled by the thousands of local branches. Your main kitchen survives.

3. Security (DDoS Protection)

Imagine a competitor hires a million bots to prank call your New York Pizza shop so no real customers can get through.
With a CDN, these prank calls hit the thousands of local branches first. The branches are smart—they realize it's a prank and hang up before the call ever reaches the New York HQ.

Top comments (2)

Collapse
 
chovy profile image
chovy

Great analogy with the pizza franchise — really drives the concept home.

One thing worth exploring is what happens when the CDN model breaks down: live/dynamic content that can't be pre-cached at edge servers. Video streaming is the classic example — you can cache static assets, but real-time or on-demand video at scale means your origin server (or your CDN bill) takes the hit.

P2P flips this entirely. Instead of origin → edge → user, every viewer becomes a node that serves content to nearby peers. The more popular something gets, the better it performs — the exact inverse of CDN scaling economics where popularity = cost.

WebTorrent brought this to browsers via WebRTC, and there are platforms now building full streaming experiences on top of P2P delivery — bittorrented.com is one example doing torrent-native streaming with IPTV, podcasts, and watchlists built in. Browse, click, stream — all P2P under the hood.

Would love to see an EP in this series covering P2P as the "anti-CDN" for media delivery. The architecture tradeoffs (seeder availability, initial buffering, piece selection for streaming) are fascinating system design problems.

Collapse
 
hrishikesh_dalal_ced8f95e profile image
Hrishikesh Dalal

Sure! That is a fantastic point regarding P2P - one of the most fascinating things regarding Computer Networks.

I will try to create an EP for the same.

Thanks for the feedback 🙌