# 1.6 million downloads. One photo.

> A flash sale turns the API into a file server.

- **Format:** short video, 10 steps, ~58 seconds
- **Topic:** A CDN during a flash sale — why 400,000 people downloading the same product photos from one server turned the API into a file server, and how Azure Front Door serves them from edge locations near each user instead.
- **Author:** Suthahar Jegatheesan (MSDEVBUILD)
- **Category:** Azure · Azure
- **Published:** 2026-09-28
- **Tags:** azure, cdn, azurefrontdoor, systemdesign, webperformance, blobstorage, caching, scalability, cloudarchitecture, backenddeveloper, microsoftazure, interviewprep, msdevbuild
- **Canonical URL:** https://blog.msdevbuild.com/shorts/azure-cdn-flash-sale-images/

---
## What you'll learn

- Why a flash sale sends the same image bytes from one server to every phone
- How a CDN like Azure Front Door serves files from an edge location near each user
- What never goes on a CDN, and why a changed image needs a new URL

## Understand it one step at a time

### 1. One photo, 400,000 phones

Four photos per page, 350 KB each. Everybody opens the page at 12:00.

### 2. Every download hits one server

Chennai, Mumbai, Delhi. All of them pull the same bytes from App Service.

### 3. The API became a file server

The servers spent the sale shipping bytes that never change.

### 4. Same bytes, every time

The photo was identical for all 400,000 people.

### 5. Put a copy near the users

Azure Front Door keeps copies at edge locations. The original moves to Blob Storage.

### 6. First download: fetch once

Chennai's edge has no copy yet, so it fetches the photo from Blob Storage one time.

### 7. Everyone else: from the edge

The next 10,000 people in each city never reach your servers.

### 8. Never on the CDN

Carts, checkout, stock left. A CDN gives everyone the same answer.

### 9. New photo? New URL

Save it under a new name. Edges and phones fetch it fresh. No purge.

### 10. Serve the same bytes from the edge

CDN for files. Redis for data. The database for the truth.

---

## The takeaway

**Same bytes? Serve them from the edge.**

Put files behind a CDN like Azure Front Door, and give every changed file a new URL.
