CDN Optimization Isn’t Incident Response.
Different layers. Same signal bus.
Mux, Cloudflare, Fastly, and Akamai optimize the happy path — caching, edge routing, multi-CDN weights, origin shield bypass. They keep a clean stream clean. Streamwake owns the Detect → Classify → Fix loop when that happy path breaks.
Both layers run together in production. Same signal bus, different obligation. This page names what each layer is responsible for — and the incident types CDN tuning alone cannot prevent.
CDN tuning owns the knobs. Streamwake owns the loop.
Honest framing of the two surfaces. The CDN owns what a healthy edge looks like; the Streamwake agent owns what happens when that edge breaks for some viewers and not others.
- cache TTL + freshness
- edge POP health
- multi-CDN weights
- geo-routing
- origin shield bypass rules
The happy path
Aggregate green dashboards
Routing and failover policy
Anomaly → incident classification
Ranked root cause
Typed next-action
Smallest safe remediation
Verified recovery
Structured postmortem
Chart emailed ≠ Incident closed.
Same anomaly, two very different ends. The CDN-only path produces a chart and a runbook; the Streamwake path produces a closed incident with a typed postmortem before the chart renders.
- 01anomaly detected
- 02chart emailed to on-call
- 03on-call pages an engineer
- 04engineer investigates the chart
- 05engineer runs the runbook
- 06engineer writes the postmortem
- 07— days later.
- 01incident detected
- 02classified in seconds
- 03fix proposed from a typed next-action
- 04agent runs the smallest safe remediation
- 05recovery verified by re-probe
- 06structured postmortem lands in Slack
- 07— before the chart finishes rendering.
Five incident types CDN tuning cannot prevent.
Each row is an incident class that surfaces cleanly to Streamwake but reads as a green dashboard on a CDN-only stack: a named signal, the symptom, why the CDN does not catch it, and the typed next-action the Streamwake agent runs.
Encoding regressions
encode.bitrate_overshoot_pct · encode.gop_drift_ms · abr.ladder_collapseEncoder ABR ladder collapses mid-event: bitrate overshoots declared ceiling, GOP drift spikes, the player falls below the lowest rung of the ladder and rebuffers across the cohort.
The CDN sees correctly-signed segments, clean 200s on every fetch, and a green X-Cache hit rate. Encoding regressions are invisible to anything reading the edge alone.
The agent tags the encode family, names the ladder-collapse hypothesis, and proposes the smallest encoder flag roll. Recovery verified by re-probing the ladder against the live window.
Manifest drift
manifest.media_sequence_age_seconds · manifest.unresolved_variant_countThe HLS master or DASH MPD references variants and segments the origin has stopped serving. The player sees a manifest with a dead media sequence and stops advancing.
The CDN returns the cached manifest with 200 OK and a HIT — every header contract looks healthy. The dead MEDIASEQUENCE inside the body is invisible until a player reads it.
The agent reads the manifest body, compares declared variants against origin reality, and tags unresolved references. Surfaces the typed next-action: re-package the title or pin to a known-good variant.
Edge brownouts
edge.pop_health_score · edge.region_driftA single POP or region degrades while aggregate cache health stays green. Viewers in that region buffer; metrics for the global cache-aggregate never cross a threshold.
Multi-region aggregate dashboards smooth across POPs. A POP stuck at 0.62 health looks like a single noisy data point in a sea of healthy regions.
The agent runs synthetics from at least three geo probes, flags POP health below threshold, and proposes a routing pin for the affected region. Verified by re-probing after the reroute.
DRM handshake spikes
drm.license_latency_p95_ms · drm.handshake_2xx_with_slow_bodyWidevine / FairPlay / PlayReady license latency spikes during a primetime window. License servers respond 200 OK with the body taking seconds to deliver — the player times out mid-handshake.
The CDN edge logs license fetches as 200 OK. Slow bodies, late Widevine handshakes, and stalled PlayReady renewals are all invisible to edge-only monitoring.
The agent tracks handshake body time vs accepted 2xx, names the license-server family, and proposes the typed remediation: pre-warm a license region, route around a drifted provider, or trigger a planned renewal.
Cross-CDN failover misses
multicdn.health_score_drift_seconds · multicdn.dns_weight_convergence_msA healthy provider goes degraded mid-event. The multi-CDN DNS controller is slow to converge; both providers serve traffic while the unhealthy one drags aggregate health down.
Each provider reports its own metrics in its own dashboard. A drift between providers surfaces nowhere unless someone is reading both at the same time.
The agent joins both providers onto a single health score, feeds DNS weights directly, and requires unhealthy providers drop to weight 0 until three consecutive intervals report health > 0.95.
Three places to start next to the CDN you already run.
Streamwake doesn’t replace the CDN. It joins its signals into a Detect → Classify → Fix loop. Pick the surface that matches where you are today.
Run the loop against your own stack — sign up, register a probe, and the next anomaly that hits the agent loop produces a typed next-action before the chart renders.
Sign up