Skip to content
SeeItFlow
System Design · Failure Scenarios · ~19 min read

Global CDN — Failure & Scale Scenarios

These scenarios force the CDN to prove it can stay fast, safe, and predictable under real stress. Each chapter follows the same shape: what fails, who feels it, how you detect it, how you recover, and what reduces repeat risk.

Mangesh MandlikLast updated:
Scenario 01

Origin Failure

The origin region or the primary Origin Server path becomes unavailable.

What fails

The CDN can no longer refill cold or expired objects from the preferred origin path. Fresh edge hits are unaffected initially — they never needed origin in the first place. What's actually at risk is fresh misses, revalidations, and any content class where stale-if-error is not a safe fallback.

Swipe to pan
Origin failure with shield failoverClientrequestEdge PoPfresh hitEdge PoPmiss / revalidateRegional Shield Cachestale-if-error + coalescingOrigin Load Balancerhealth-based failoverOrigin Serverprimary downOrigin Replicasecondary healthyserve hitmisscoalescedrefillsingle retrybudgetprimary failsreroute to backuprefill bytesserve stale /refreshed objectHits stay fast: origin outage does not matter hereProtect origin during failovershared retries at shield; never let every edge retry independently
On origin failure, edge hits keep serving while shielded misses use stale-if-error and health-based failover through the Origin Load Balancer to a secondary origin.

User impact

Warm cached assets may keep working for a while, but newly requested objects, short-TTL HTML, or uncached media paths begin to fail or serve stale content if the policy allows it.

Detection

Origin health checks, elevated 5xx rates on refill traffic, shield retry spikes, and rising stale-serve counters are the primary signals.

Recovery

Fail over to the secondary origin region or Origin Load Balancer + replicas, serve stale-if-error where policy allows it for that content class, and keep origin retries within a bounded budget — every edge independently retrying the same failing path at once just adds load to an already struggling origin. When origin does return, expect a refill surge as accumulated misses and revalidations all try to catch up at once; that recovery moment deserves its own attention, not just the outage itself.

Mitigations

Use multi-region origins, health-based origin selection, shield caches, bounded and shared origin retry budgets (not independent per-edge retries), and explicit stale-if-error policies scoped to content classes that can tolerate brief staleness.

Scenario 02

Edge PoP Failure

One Edge PoP or metro location loses capacity or becomes unhealthy.

What fails

Clients that would normally land on that PoP can no longer be served there. Local cache warmth in that location is effectively lost until traffic shifts elsewhere.

User impact

Nearby users may see a small latency increase because they are rerouted to the next-best edge. If reroute is slow or incomplete, some connections may fail during the transition.

Detection

PoP-level health checks, route announcements dropping, sharp local error spikes, and traffic suddenly draining to neighboring metros reveal the issue.

Recovery

Withdraw the Anycast route or stop advertising the affected edge. Convergence is not instant or perfectly uniform — different networks observe and react to the withdrawal at different speeds — so a brief uneven transition is expected, not a bug. Restore the location gradually, only after ingress, cache, and WAF subsystems are healthy again.

Mitigations

Keep enough geographic overlap — and spare capacity at neighboring PoPs — that they can absorb shifted traffic without becoming overloaded themselves, and avoid making any one PoP uniquely responsible for customer config or control-plane state.

Scenario 03

Regional Cache / Shield Failure

A Regional Shield Cache cluster is unavailable or badly degraded.

What fails

The normal fan-in layer between edges and origin disappears, so refill traffic risks becoming much more scattered and much more expensive.

User impact

Users may still receive cached content from local edges, but misses become slower and more likely to fail if the origin is not ready for the increased refill load.

Detection

Shield hit ratio collapses, origin refill concurrency jumps, and edge-miss latency increases sharply within the affected geography.

Recovery

Redirect misses to another shield region or, if necessary, temporarily bypass shield while tightening coalescing and admission controls to protect origin.

Mitigations

Deploy redundant shield regions, keep origin connection budgets, and make shield selection dynamic so the system can reroute refill traffic without a global emergency change.

Failover stampede risk

The recovery step itself can cause a second incident: redirecting every affected edge directly to origin, or all onto one backup shield at once, can overwhelm that fallback path immediately. Mitigate with controlled (gradual, not instant) failover, per-origin concurrency budgets, coalescing preserved at the fallback, and traffic moved in stages rather than all at once.

Scenario 04

Cache Stampede

A hot object expires and thousands of requests arrive before it has been refilled.

What fails

Without protection, many edge or shield nodes attempt the same upstream fetch simultaneously. The cache layer stops being a buffer and starts amplifying load.

User impact

Latency rises suddenly and the origin can tip into overload, turning what should have been one slow refill into a widespread outage.

Detection

You see a synchronized jump in misses for the same key, elevated origin concurrency for one object, and a sudden drop in shield efficiency.

Recovery

Enable or tighten request coalescing (single-flight refill) at the shield, serve stale-while-revalidate where content policy allows it, and consider a bounded refill concurrency limit so the recovering origin isn't hit with unlimited parallel fetch attempts. Extending TTL during an incident can help, but it is not universally safe — for content where staleness itself causes harm, extending TTL just prolongs incorrect data instead of load.

Mitigations

Use shield-level collapse, TTL jitter for extremely hot keys so they don't all expire in the same instant, bounded refill concurrency, hot-key pre-warming ahead of predictable spikes, and versioned assets so popular objects don't need synchronized expiration at all.

Scenario 05

Cache Poisoning

An attacker causes incorrect or malicious content to be cached under a shared public key.

What fails

Cache-key design, header normalization, or trust boundaries break down, allowing a response meant for one context to be reused for many others.

User impact

Many users can receive stale, wrong, private, or malicious content from the edge even though the origin itself was never broadly compromised.

Detection

Unexpected cache-key cardinality, anomalous vary patterns, WAF signals, mismatched headers, and sudden spikes in incorrect-response complaints are strong indicators.

Recovery

Purge the affected objects, disable the vulnerable cache rule, tighten normalization, and if necessary force temporary origin bypass until the rule path is safe again.

Mitigations

Use explicit cache keys, limit which headers and query params vary cache behavior, never cache auth-dependent responses publicly, and validate origin-provided cache headers against policy.

Common root causes

This usually traces back to one of a few specific mistakes: cache-key normalization gaps (a header or parameter that affects the response isn't in the key), Vary misuse on a high-cardinality or attacker-influenceable header, auth/cookie handling mistakes that let an identity-specific response get cached under a public key, or trusting unsafe/unvalidated headers coming from origin.

Scenario 06

DDoS Attack

The CDN becomes the first line of defense against a volumetric or application-layer attack.

What fails

The attack shape matters for what actually fails. A volumetric/network attack can saturate ingress link capacity. A connection-exhaustion attack can exhaust connection-handling capacity without necessarily saturating bandwidth. An application-layer attack of individually valid but expensive requests can overwhelm compute or origin capacity while looking like normal, low-volume traffic.

User impact

Legitimate users see increased latency, challenge pages, throttling, or outright failure if bad traffic is not filtered quickly enough.

Detection

Traffic shape anomalies, bot-score collapse, WAF match spikes, SYN or request floods, and unusual geographic concentration all point to active attack conditions.

Recovery

Recovery differs by attack type: volumetric floods are absorbed by scaling edge scrubbing and, if needed, rerouting or blackholing sources; connection exhaustion needs connection-level limits and faster resource reclamation; application-layer floods need request-level inspection, behavioral scoring, and targeted rate limits rather than raw capacity.

Mitigations

Keep DDoS scrubbing at the edge, isolate protected origin paths, rehearse emergency rule pushes, and make sure attack dashboards are regional because floods are rarely uniform everywhere.

Scenario 07

Hot Content Traffic Spike

One object or one small set of objects suddenly becomes globally hot due to a launch, sports event, or software release.

What fails

The challenge is not total traffic alone; it is traffic skew. A tiny subset of keys consumes a disproportionate share of bandwidth and refill attention.

User impact

If the CDN is prepared, users mostly see success because the content becomes hot at the edge quickly. If not, the first wave of misses can crush shield and origin before the cache warms.

Detection

Top-object concentration rises sharply, the same cache key appears across many PoPs at once, and origin refill graphs show a sudden spike on one asset family.

Recovery

Pre-warm the object when possible, pin it in RAM/SSD for a period, extend TTL carefully, and ensure request coalescing is active at the shield.

Mitigations

Use release-aware prefetch workflows for predictable hotspots, package large media into segments, and maintain enough shield capacity to absorb synchronized first-wave misses.

Already-hot object vs newly-cold-turned-hot object

These are meaningfully different. An object that is already cached and hot just needs its existing warm copies to keep serving — low risk. An object that is globally cold and suddenly becomes hot (a surprise viral moment, an unplanned release) is far more dangerous: the first wave of requests all miss simultaneously and create refill pressure on shield and origin before the object has had any chance to warm up anywhere.

Scenario 08

Global Traffic Surge

Overall request volume rises sharply across many regions at once, not just on a single object.

What fails

Edge ingress, TLS termination, cache throughput, and WAF capacity are all stressed simultaneously. Even with good hit ratio, the fleet can run short on connection or CPU headroom.

User impact

Users may see queueing, slower TLS handshakes, increased tail latency, or aggressive rate limiting, especially in already busy metros.

Detection

Concurrent connections, per-PoP CPU and network saturation, rising p99 latency by region, and autoscaling lag across the fleet show the system is under broad pressure.

Recovery

Shift traffic across regions, add or scale edge capacity, and reserve origin capacity for truly uncached paths. Security controls should fail safely under load — degradation must not casually disable WAF or rate-limiting just to save cycles, since that trades a capacity problem for a security one.

Mitigations

Provision regional headroom, keep PoPs fungible, separate control-plane work from data-plane resources so purge storms or config pushes do not compete with live traffic during peaks, and enforce per-tenant fairness/admission controls so one workload cannot consume all of a PoP's capacity while others starve.

Scenario 09

Invalid Cached Content

The CDN is serving content that is syntactically fine but semantically wrong: stale HTML, mismatched JS, or the wrong asset version.

What fails

Freshness policy, deployment sequencing, or purge propagation breaks down. The cache is technically working, but it is serving the wrong version of truth.

User impact

Pages can break in subtle ways: HTML references JS that some PoPs do not have yet, old logos linger, or users see different behavior depending on region.

Detection

Synthetic probes by region, checksum mismatches, elevated frontend error rates after deploys, and customer reports that differ by geography reveal the problem.

Recovery

Roll forward to a coherent version, purge affected paths, or revert to the prior fingerprinted asset set. During incident response, versioned assets are far safer than trying to reason about mixed mutable filenames.

Mitigations

Use Versioned / Fingerprinted Assets, deploy assets before HTML references, and keep purge dashboards so you know where old content still exists.

Why mutable HTML pointing at immutable assets is the classic trigger

This scenario is especially common when mutable entry documents (HTML, manifests) reference immutable fingerprinted assets: if the HTML update reaches some PoPs before the assets it references exist there, or before purge finishes propagating, a request can land on a coherent-looking but internally mismatched combination. Deploying assets before flipping references, and treating rollback to a prior coherent version as a first-class recovery option (not just forward-fixing), both reduce this risk. Synthetic regional verification after deploys catches the mismatch before real users do.

Scenario 10

Routing Failures

DNS or Anycast routing sends users to the wrong place: too far away, unhealthy, or overloaded.

What fails

Resolver geo-mapping can be wrong, a DNS steering rule can misclassify a region, a bad BGP advertisement or policy can steer traffic incorrectly, or traffic can get shifted onto a PoP that is technically healthy but already near its capacity limit — a subtly different failure than a PoP being down.

User impact

Users experience unexplained latency jumps, intermittent connection resets, or region-specific failures even though the CDN appears globally healthy in aggregate.

Detection

Per-region RTT changes, route-table diffs, synthetic probes from many ASNs, and unexpected traffic concentration in the wrong PoPs are the key indicators.

Recovery

Withdraw the bad Anycast route or correct the DNS steering rule, drain the overloaded region, and verify route convergence from multiple external vantage points before declaring the incident closed — routing health should be measured from outside the CDN's own view of itself, not only from internal telemetry.

Mitigations

Continuously test routing externally, keep DNS and Anycast health automation conservative, and make sure traffic engineering changes have safe rollout and rollback paths.

Scenario 11

Control Plane / Configuration Outage

The central metadata/config service that holds durable configuration becomes unavailable.

What fails

New configuration, purge requests, and certificate changes can no longer be authored, validated, or distributed while the control plane is down.

User impact

Existing edge traffic is unaffected in the moment — every PoP keeps serving from its last-known-good local snapshot, since the request path never depended on a live central lookup. What breaks is anything that needs a new change: new purges, new config, new certs all queue up or fail until the control plane returns.

Detection

Control-plane health dashboards, a growing backlog of unapplied purge/config jobs, and failed config-author API calls are the primary signals.

Recovery

Restore the control plane, then reconcile the missed versions in order rather than pushing the entire accumulated backlog to every PoP at once — an uncontrolled backlog dump risks turning a recovery into its own incident.

Mitigations

Keep the data plane structurally independent of the control plane at request time, monitor backlog depth as a first-class metric, and design reconciliation to be paced rather than instantaneous.

Scenario 12

Bad Global Configuration Rollout

A valid-looking but harmful cache, routing, WAF, or origin rule gets distributed to the fleet.

What fails

Unlike most failures on this list, nothing broke physically — the CDN itself becomes the source of a global outage purely through a configuration change.

User impact

Depending on the rule, this can look like sudden mass cache misses, mass purges, broken routing, or requests being wrongly blocked or wrongly allowed across every affected PoP at once.

Detection

Sudden fleet-wide behavior change correlated with a recent config deploy, error-rate spikes appearing simultaneously across unrelated regions, and automated health gates tripping during a staged rollout (if the rollout was staged).

Recovery

Roll back to the last known-good versioned config, which should be fast by design, and halt further rollout stages immediately rather than letting the bad version keep propagating to remaining PoPs.

Mitigations

Canary the change on a limited set of PoPs first, roll out region by region with automatic health gates between stages, keep every config version tracked so rollback is a version switch rather than a rebuild, and contain blast radius by design rather than relying on fast detection alone.

Scenario 13

Certificate / TLS Distribution Failure

A new certificate, key, or TLS config fails to reach some PoPs, turns out to be invalid, or expires unexpectedly.

What fails

Affected PoPs cannot correctly terminate TLS for the impacted hostnames — this is a regional, hostname-scoped failure rather than a fleet-wide one in most cases.

User impact

Users hitting the affected PoPs see TLS handshake failures or certificate warnings; users routed elsewhere are unaffected, which can make the incident look smaller in aggregate dashboards than it actually is for the affected region.

Detection

Certificate-expiry monitoring with lead time before expiry, regional TLS error-rate spikes, and handshake failure metrics broken out by PoP rather than only in aggregate.

Recovery

Retain the prior valid certificate/config where safe rather than force-activating a bad one, stage activation of the new certificate the same way any other config change would be staged, and reconcile once the distribution path is confirmed healthy.

Mitigations

Monitor certificate expiry well ahead of time, use the same validate-version-stage-activate pipeline as any other config object, and keep secure, reliable distribution and reconciliation paths specifically for key material given its sensitivity.

Scenario 14

Negative Cache Incident

The CDN caches a 404 or error response too aggressively, and continues hiding a resource that has since become available, or prolongs an upstream error longer than the outage itself lasted.

What fails

The negative-cache TTL for the affected status/path is longer than the actual duration of the underlying problem, so the cache — not the origin — becomes the reason the incident appears to continue.

User impact

Users (or bots) requesting a path that should now succeed keep receiving a cached error instead, even after origin has already recovered.

Detection

A gap between origin-side recovery signals (origin health checks look fine) and edge-side symptom signals (errors still being served) is the telltale sign — the origin thinks it's fine, but the edge disagrees, because the edge is answering from cache.

Recovery

Purge or revalidate the negatively cached entries for the affected paths, and shorten the negative-cache TTL for that content class going forward if it was set too aggressively.

Mitigations

Use short, status-aware negative-cache TTLs rather than one blanket TTL for all non-200 responses, and treat negative caching as a policy decision that trades origin protection against this specific correctness risk — not a free win.

Scenario 15

Noisy Neighbor / Tenant Hotspot

One customer, one software release, or one event suddenly consumes a disproportionate share of a PoP's bandwidth, CPU, connections, or cache capacity.

What fails

Fleet-wide metrics can look entirely healthy while this happens, because the pressure is concentrated on one tenant and one shared resource pool rather than showing up in global averages.

User impact

Other tenants sharing that same PoP or resource pool see degraded latency or error rates for no reason connected to their own traffic — an effectively unrelated customer's spike becomes their problem too.

Detection

Per-tenant traffic and resource metrics are what actually catch this — a sudden spike in one customer's request volume, connection count, or cache footprint at a specific PoP, isolated from otherwise-normal fleet-wide numbers.

Recovery

Apply per-tenant quotas or admission control at the affected PoP, and shift the hot tenant's traffic toward capacity where it has more room, without needing to change anything about other tenants' service.

Mitigations

Per-tenant metrics as a standing requirement (not just fleet aggregates), enforced bandwidth/concurrency/cache-capacity quotas, and isolated resource pools for tenants whose traffic pattern makes shared best-effort capacity too risky.

ScenarioBlast radiusFirst signal
01 Origin failureFresh misses, revalidations and short-TTL content; warm hits unaffectedOrigin health checks, 5xx on refill traffic, shield retry spikes
02 Edge PoP failureClients of one PoP; local cache warmth lostPoP health checks, route announcements dropping, local error spikes
03 Regional cache / shield failureRefill traffic scatters straight toward originShield hit ratio collapse, origin refill concurrency jump
04 Cache stampedeOne key's synchronized refill overloads originSynchronized misses for one key, origin concurrency on one object
05 Cache poisoningMany users get wrong, private or malicious contentUnexpected cache-key cardinality, anomalous Vary patterns, WAF signals
06 DDoS attackIngress, connections or application capacity, by attack shapeTraffic shape anomalies, bot-score collapse, SYN or request floods
07 Hot content spikeShield and origin if a cold object turns hotTop-object concentration, same key across many PoPs
08 Global traffic surgeEdge ingress, TLS, cache throughput and WAF capacity togetherConcurrent connections, per-PoP CPU/network saturation, regional p99
09 Invalid cached contentUsers see mixed or outdated versions, varying by regionRegional synthetic probes, checksum mismatches, post-deploy frontend errors
10 Routing failuresRegion-specific latency or resets while the global view looks healthyPer-region RTT changes, route-table diffs, probes from many ASNs
11 Control-plane outageNew config, purge and certificate changes; existing traffic keeps flowingGrowing backlog of unapplied jobs, failed config-author API calls
12 Bad global config rolloutEvery PoP that received the change, possibly fleet-wideFleet-wide change correlated with a config deploy, health gates tripping
13 Certificate / TLS distribution failureTLS for affected hostnames at affected PoPsRegional handshake failures per PoP, certificate-expiry lead time
14 Negative cache incidentPaths cached as errors after origin has recoveredOrigin looks healthy while edges still serve errors
15 Noisy neighbor / tenant hotspotOther tenants on the same PoP or resource poolPer-tenant request volume, connections or cache footprint at one PoP
All fifteen scenarios at a glance: blast radius and first signal
Key takeaways
  1. 01Cache hits make the system fast, but failure planning is what keeps it trustworthy.
  2. 02Shield caches and request coalescing are the main defenses against origin overload during misses and spikes.
  3. 03Routing health must be measured from the outside world, not only from inside the CDN.
  4. 04Versioned assets and selective caching reduce a large class of invalid-content incidents.
  5. 05A resilient CDN degrades gracefully: edge reroutes first, shield protects origin, and stale-serve policies buy time when refill paths are unhealthy.
  6. 06Scenarios 11-15 are self-inflicted or hidden failures: control-plane outages and bad rollouts need staged, versioned, paced changes; TLS, negative-cache and noisy-neighbor problems need per-PoP, per-status and per-tenant metrics because aggregates look healthy.