Bird
Raised Fist0
HLDsystem_design~10 mins

CDN caching for static content in HLD - Scalability & System Analysis

Choose your learning style10 modes available
Scalability Analysis - CDN caching for static content
Growth Table: CDN Caching for Static Content
UsersRequests per SecondCache Hit RatioOrigin Server LoadBandwidth UsageLatency
100 users~10-50 RPS~80%LowLowLow
10,000 users~1,000-5,000 RPS~85-90%ModerateModerateLow
1,000,000 users~100,000-500,000 RPS~90-95%High without CDN scalingHighLow to Moderate
100,000,000 users~10M-50M RPS~95-99%Origin offloaded heavilyVery HighLow (global edge caching)
First Bottleneck

The origin server becomes the first bottleneck as user requests grow. Without CDN caching, the origin must serve all static content, causing high CPU, bandwidth, and latency issues. Network bandwidth at the origin and server capacity limit how many requests it can handle.

Scaling Solutions
  • Use CDN edge caching: Cache static content at multiple global edge locations to serve users closer to them, reducing origin load and latency.
  • Cache control headers: Set proper cache expiration and validation headers to maximize cache hit ratio and freshness.
  • Cache invalidation: Implement efficient cache purging or versioning to update content without overloading origin.
  • Origin scaling: Scale origin servers vertically or horizontally as a fallback when cache misses occur.
  • Compression and optimization: Compress static files and optimize assets to reduce bandwidth usage.
  • Load balancing: Distribute origin requests across multiple servers or regions.
Back-of-Envelope Cost Analysis
  • At 1M users with 100K RPS, assuming 90% cache hit, origin handles 10K RPS.
  • Origin bandwidth: For 1MB average static file, 10K RPS = ~10 GB/s (~80 Gbps), which requires high network capacity.
  • CDN edges handle 90K RPS, distributing bandwidth globally, reducing origin costs.
  • Storage: Static content storage is usually small (GBs to TBs), but must be replicated across CDN nodes.
  • Cost savings come from reduced origin bandwidth and server load.
Interview Tip

Start by explaining the role of CDN caching in reducing origin load and latency. Discuss cache hit ratio impact and how cache control headers affect freshness. Then, identify bottlenecks at origin servers and network bandwidth. Finally, propose scaling solutions like edge caching, cache invalidation, and origin scaling. Use numbers to justify your points.

Self Check

Your origin server handles 1000 RPS for static content. Traffic grows 10x. What do you do first?

Answer: Deploy CDN edge caching for static content to offload the origin server and reduce load before scaling origin servers vertically or horizontally.

Key Result
CDN caching shifts static content delivery from origin servers to global edge locations, drastically reducing origin load and latency as user traffic grows from thousands to millions.

Practice

(1/5)
1. What is the main purpose of using a CDN cache for static content?
easy
A. To delete static files after use
B. To store static files closer to users for faster access
C. To encrypt all static content
D. To increase the size of static files

Solution

  1. Step 1: Understand CDN caching basics

    A CDN cache stores copies of static files like images and scripts near users to reduce loading time.
  2. Step 2: Identify the main benefit

    By storing files closer, users get faster access and the main server has less load.
  3. Final Answer:

    To store static files closer to users for faster access -> Option B
  4. Quick Check:

    CDN caching = faster static content delivery [OK]
Hint: CDN caches static files near users to speed up loading [OK]
Common Mistakes:
  • Thinking CDN increases file size
  • Confusing caching with encryption
  • Assuming CDN deletes files after use
2. Which HTTP header is commonly used to control CDN caching behavior for static content?
easy
A. Cache-Control
B. Content-Type
C. Authorization
D. User-Agent

Solution

  1. Step 1: Identify headers related to caching

    Cache-Control header tells browsers and CDNs how long to keep cached content.
  2. Step 2: Exclude unrelated headers

    Content-Type defines file type, Authorization is for access, User-Agent identifies client.
  3. Final Answer:

    Cache-Control -> Option A
  4. Quick Check:

    Cache-Control header manages caching [OK]
Hint: Cache-Control header sets caching rules for CDNs [OK]
Common Mistakes:
  • Confusing Content-Type with caching
  • Using Authorization header for caching
  • Thinking User-Agent controls cache
3. Given the following Cache-Control header: Cache-Control: max-age=3600, public, what does it mean for CDN caching?
medium
A. Cache content publicly for 3600 seconds
B. Do not cache content at all
C. Cache content privately for 3600 seconds
D. Cache content indefinitely

Solution

  1. Step 1: Interpret max-age directive

    max-age=3600 means cache content for 3600 seconds (1 hour).
  2. Step 2: Understand public directive

    public means content can be cached by any cache, including CDNs and browsers.
  3. Final Answer:

    Cache content publicly for 3600 seconds -> Option A
  4. Quick Check:

    max-age=3600 + public = public cache for 1 hour [OK]
Hint: max-age sets cache time; public allows shared caching [OK]
Common Mistakes:
  • Confusing public with private caching
  • Assuming max-age disables caching
  • Thinking max-age means indefinite caching
4. A CDN is serving outdated static content even after you updated the files on your origin server. What is the most likely cause?
medium
A. The origin server is down
B. The user's browser cache is disabled
C. The static files were deleted from the origin
D. The CDN cache was not invalidated or purged

Solution

  1. Step 1: Understand CDN cache behavior

    CDNs keep cached copies until they expire or are explicitly purged.
  2. Step 2: Identify cause of stale content

    If files updated on origin but CDN still serves old files, cache invalidation likely missing.
  3. Final Answer:

    The CDN cache was not invalidated or purged -> Option D
  4. Quick Check:

    Stale CDN content = missing cache purge [OK]
Hint: Stale CDN content? Check cache invalidation first [OK]
Common Mistakes:
  • Assuming origin server down causes stale CDN cache
  • Thinking deleted origin files cause stale CDN content
  • Blaming user browser cache for CDN stale content
5. You want to ensure users always get the latest version of your static files after you update them, but still benefit from CDN caching. Which approach is best?
hard
A. Disable CDN caching and serve files directly from origin
B. Set Cache-Control to no-cache for all static files
C. Use versioned URLs for static files and set long cache expiration
D. Use short cache expiration without versioning

Solution

  1. Step 1: Understand versioned URLs

    Versioned URLs (e.g., style.v2.css) change file names on update, forcing CDN to fetch new files.
  2. Step 2: Combine with long cache expiration

    Long cache expiration lets CDN cache files efficiently without frequent revalidation.
  3. Step 3: Avoid disabling caching or short expiration

    Disabling caching or short expiration hurts performance and increases load.
  4. Final Answer:

    Use versioned URLs for static files and set long cache expiration -> Option C
  5. Quick Check:

    Versioned URLs + long cache = fresh and fast [OK]
Hint: Version URLs + long cache = fresh content with speed [OK]
Common Mistakes:
  • Disabling CDN caching unnecessarily
  • Using no-cache header causing slow loads
  • Relying on short expiration without versioning
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard