Interview field guide
Build stronger answers from real failures.
Use concise lessons from public postmortems to explain tradeoffs, failure modes, and safeguards in a system design interview. Each incident appears under every topic it can help you discuss.
- Incidents
- 35
- Failure topics
- 10
Find a talking point
Browse by failure mode
Jump to a topic or search by technology, company, incident, or lesson.
All interview topics
Failure mode
Split-brain
A partition leaves two nodes both acting as primary — writes diverge.
The canonical CAP-in-practice story: consistency vs availability under partition, plus async-replication data-loss risk.
GitHub · 201843 seconds that cost 24 hours→When asked to design a highly-available multi-region system, discuss how to verify true failure-domain independence between regions rather than trusting provider abstractions.
PagerDuty · 2013Dual AWS region outage takes down notification dispatch→
Failure mode
Cascading failure
One component's failure overloads its neighbors until the system folds.
When asked to design a large fleet of self-hosted job runners, discuss automated certificate lifecycle management, independent expiry alerting, and backoff/circuit-breaking on reconnect storms so a single expired credential can't cascade into platform-wide API degradation.
GitHub · 2026Expired internal SSL cert breaks Actions runner connectivity→A client-side retry loop is a server-side capacity problem: cite request deduplication, backoff with jitter, and circuit breakers on anything in the authorization path.
Cloudflare · 2025Dashboard bug overwhelmed auth API for 75 minutes→Paging paths need pre-baked, independently hosted fallbacks: when the telecom provider and the deploy pipeline fail together, you cannot ship a fix to your own alerting.
incident.io · 2025AWS us-east-1 outage cascaded through four hidden third-party dependencies→When asked to design a health-checking control plane for a sharded data service, discuss how oversized or delayed heartbeats can masquerade as host failure and why remediation actions need rate limits and blast-radius caps.
AWS · 2024Kinesis cell manager mistakes healthy hosts for dead→When asked to design multi-site DNS infrastructure, discuss how to isolate a single site's DNS failure from database maintenance and how to validate that failover mitigations don't break connectivity between sites.
GitHub · 2024Database Migration Cascades Into Site-Wide DNS Outage→When asked about safe autoscaling design, discuss why untested scale thresholds are as risky as untested code paths, and how cellular architectures contain blast radius when a cell fails.
AWS · 2023Lambda Frontend Scaling Bug Breaks US-EAST-1→Simultaneous timeouts to unrelated backends on one node point at the host or network, not the app — check NIC and conntrack counters before blaming the deploy.
incident.io · 2023GKE Dataplane V2 CPU starvation from concurrent TCP storms→Congestion collapse, backoff/jitter on retries, and observability that survives the outage it's reporting on.
AWS · 2021The autoscaler that fought the network→When asked about safe database migrations, discuss why a schema change must be readable by both old and new code during the rollout window, including during a rollback.
CircleCI · 2021Backwards-incompatible schema change stalls all job execution→Single-points-of-failure in the control plane; why service discovery deserves its own blast-radius analysis.
Roblox · 202173 hours down via one coordination layer→Health-check design under load, pre-warming for predictable spikes, and avoiding retry amplification.
Slack · 2021The first-Monday thundering herd→Recovery is its own load event: service discovery needs admission control and staggered reconnects so returning clients cannot cost it quorum.
Datadog · 2020Service discovery collapse took down all systems for 10 hours→Failover correctness under provider-initiated events; chaos-testing the real failure triggers.
Discord · 2020A cloud live-migration tipped over Redis→Blast-radius control: guardrails on destructive ops, plus out-of-band status reporting.
AWS · 2017A typo took out us-east-1→When asked how to prevent a shared database from becoming a single point of contention under load, discuss splitting hot datasets into isolated stores and building dedicated incident-response tooling ahead of time, not during the outage.
CircleCI · 2015Database contention triggers day-long build queue collapse→Why health-check thresholds must account for p99 latency, not just the mean.
Chef · 2014Health checks too impatient to live→Circular dependencies in tooling: a pipeline that manages DNS must not need working DNS to run, or it cannot fix the outage it caused.
GitHub · 2014Puppet bug corrupted DNS and cascaded into fileserver exhaustion→
Failure mode
Thundering herd
A synchronized surge — retries, reconnects, cache stampede — buries a resource.
Isolate public and authenticated request paths — separate pools and quotas — so an abusive surge on open endpoints cannot starve authenticated users.
GitHub · 2026Public endpoints overwhelmed by abusive traffic→When asked to design a large fleet of self-hosted job runners, discuss automated certificate lifecycle management, independent expiry alerting, and backoff/circuit-breaking on reconnect storms so a single expired credential can't cascade into platform-wide API degradation.
GitHub · 2026Expired internal SSL cert breaks Actions runner connectivity→A client-side retry loop is a server-side capacity problem: cite request deduplication, backoff with jitter, and circuit breakers on anything in the authorization path.
Cloudflare · 2025Dashboard bug overwhelmed auth API for 75 minutes→Health-check design under load, pre-warming for predictable spikes, and avoiding retry amplification.
Slack · 2021The first-Monday thundering herd→Recovery is its own load event: service discovery needs admission control and staggered reconnects so returning clients cannot cost it quorum.
Datadog · 2020Service discovery collapse took down all systems for 10 hours→Capacity planning for known traffic events; verifying the scheduler can place instances under pressure.
Allegro · 2018A marketing campaign DDoSed itself→Designing for upstream-recovery surges: backpressure, rate limits, and draining strategies.
CircleCI · 2015When GitHub came back, the queue fell over→Why health-check thresholds must account for p99 latency, not just the mean.
Chef · 2014Health checks too impatient to live→
Failure mode
Config change
A configuration or rule push, not a code bug, takes production down.
Config pipelines need the same staged rollout as code, so one bad push cannot mark every database host unhealthy to the routing layer at once.
GitHub · 2024Config change silenced database health checks for 36 minutes→Change management for network config; why infra changes need canaries too.
Cloudflare · 2022A backbone change crushed 19 data centers→Talk about latent bugs surfaced by input, and why you fuzz/replay real customer configs in staging.
Fastly · 2021One customer's config, the whole CDN down→Verify effective limits, not configured ones — read them off the running process, and prove they survive a restart rather than trusting the unit file.
GitHub · 2020ProxySQL file descriptor limit silently capped by system process manager→When asked about safe deploys, cite canary rollouts plus automatic CPU/latency circuit breakers on rule engines.
Cloudflare · 2019The regex that ate every CPU→Capacity planning for known traffic events; verifying the scheduler can place instances under pressure.
Allegro · 2018A marketing campaign DDoSed itself→Safe defaults in config management: removing or zeroing a capacity floor should fail loudly, never silently fall back to a dangerous default.
AWS · 2018Config change killed Seoul region DNS for 84 minutes→Blast-radius control: guardrails on destructive ops, plus out-of-band status reporting.
AWS · 2017A typo took out us-east-1→
Failure mode
Resource exhaustion
CPU, memory, connections, file descriptors or disk run dry.
When asked to design a health-checking control plane for a sharded data service, discuss how oversized or delayed heartbeats can masquerade as host failure and why remediation actions need rate limits and blast-radius caps.
AWS · 2024Kinesis cell manager mistakes healthy hosts for dead→When asked about safe autoscaling design, discuss why untested scale thresholds are as risky as untested code paths, and how cellular architectures contain blast radius when a cell fails.
AWS · 2023Lambda Frontend Scaling Bug Breaks US-EAST-1→Instrument connection pools by holder, not just utilization: know which endpoints hold connections longest before you try to alert on exhaustion.
incident.io · 2023Unnecessary Slack transactions starved database connection pool→Simultaneous timeouts to unrelated backends on one node point at the host or network, not the app — check NIC and conntrack counters before blaming the deploy.
incident.io · 2023GKE Dataplane V2 CPU starvation from concurrent TCP storms→Single-points-of-failure in the control plane; why service discovery deserves its own blast-radius analysis.
Roblox · 202173 hours down via one coordination layer→Verify effective limits, not configured ones — read them off the running process, and prove they survive a restart rather than trusting the unit file.
GitHub · 2020ProxySQL file descriptor limit silently capped by system process manager→When asked about safe deploys, cite canary rollouts plus automatic CPU/latency circuit breakers on rule engines.
Cloudflare · 2019The regex that ate every CPU→When asked about scaling a high-write table, discuss choosing 64-bit primary keys upfront and monitoring key-space headroom as a first-class production metric.
Basecamp · 2018Primary key overflow on events table forces read-only mode→When asked how to prevent a shared database from becoming a single point of contention under load, discuss splitting hot datasets into isolated stores and building dedicated incident-response tooling ahead of time, not during the outage.
CircleCI · 2015Database contention triggers day-long build queue collapse→Designing for upstream-recovery surges: backpressure, rate limits, and draining strategies.
CircleCI · 2015When GitHub came back, the queue fell over→Status and incident-communication channels must not share fate with the service they report on — they are needed exactly when it is down.
Basecamp · 2014Extortion DDoS took Basecamp down for 45 minutes→
Failure mode
Bad deploy
A rollout, flag flip, or migration that wasn't safely staged.
When asked to design multi-site DNS infrastructure, discuss how to isolate a single site's DNS failure from database maintenance and how to validate that failover mitigations don't break connectivity between sites.
GitHub · 2024Database Migration Cascades Into Site-Wide DNS Outage→Change management for network config; why infra changes need canaries too.
Cloudflare · 2022A backbone change crushed 19 data centers→When asked about safe database migrations, discuss why a schema change must be readable by both old and new code during the rollout window, including during a rollback.
CircleCI · 2021Backwards-incompatible schema change stalls all job execution→Talk about latent bugs surfaced by input, and why you fuzz/replay real customer configs in staging.
Fastly · 2021One customer's config, the whole CDN down→Database sequences guarantee uniqueness, not contiguity — gap-free per-tenant numbering needs an explicit counter row updated inside the transaction.
incident.io · 2021Database upgrade made incident IDs skip 32 numbers→Circular dependencies in tooling: a pipeline that manages DNS must not need working DNS to run, or it cannot fix the outage it caused.
GitHub · 2014Puppet bug corrupted DNS and cascaded into fileserver exhaustion→Deployment safety and idempotency: detect partial rollouts; never let one un-updated node run divergent logic.
Knight Capital · 2012$440M in 45 minutes→
Failure mode
Data loss
Accidental deletion or replica divergence destroys or strands data.
Disaster recovery: define RPO/RTO and, above all, prove your restores actually work.
GitLab · 2017rm -rf on the wrong database→
Failure mode
DNS / BGP
Name resolution or route withdrawal makes systems unreachable.
When asked to design multi-site DNS infrastructure, discuss how to isolate a single site's DNS failure from database maintenance and how to validate that failover mitigations don't break connectivity between sites.
GitHub · 2024Database Migration Cascades Into Site-Wide DNS Outage→Discuss BGP/DNS as a hard dependency and the danger of recovery tooling sharing fate with production.
Meta · 2021The day Facebook deleted itself from the internet→Safe defaults in config management: removing or zeroing a capacity floor should fail loudly, never silently fall back to a dangerous default.
AWS · 2018Config change killed Seoul region DNS for 84 minutes→Circular dependencies in tooling: a pipeline that manages DNS must not need working DNS to run, or it cannot fix the outage it caused.
GitHub · 2014Puppet bug corrupted DNS and cascaded into fileserver exhaustion→
Failure mode
Dependency failure
An upstream or downstream service — internal or third-party — gives out.
When asked to design a large fleet of self-hosted job runners, discuss automated certificate lifecycle management, independent expiry alerting, and backoff/circuit-breaking on reconnect storms so a single expired credential can't cascade into platform-wide API degradation.
GitHub · 2026Expired internal SSL cert breaks Actions runner connectivity→Paging paths need pre-baked, independently hosted fallbacks: when the telecom provider and the deploy pipeline fail together, you cannot ship a fix to your own alerting.
incident.io · 2025AWS us-east-1 outage cascaded through four hidden third-party dependencies→When asked about safe autoscaling design, discuss why untested scale thresholds are as risky as untested code paths, and how cellular architectures contain blast radius when a cell fails.
AWS · 2023Lambda Frontend Scaling Bug Breaks US-EAST-1→Discuss BGP/DNS as a hard dependency and the danger of recovery tooling sharing fate with production.
Meta · 2021The day Facebook deleted itself from the internet→Status and incident-communication channels must not share fate with the service they report on — they are needed exactly when it is down.
Basecamp · 2014Extortion DDoS took Basecamp down for 45 minutes→When asked to design a highly-available multi-region system, discuss how to verify true failure-domain independence between regions rather than trusting provider abstractions.
PagerDuty · 2013Dual AWS region outage takes down notification dispatch→
Failure mode
Automation misfire
A failover, autoscaler, or cleanup job does the wrong thing, confidently.
When asked to design a health-checking control plane for a sharded data service, discuss how oversized or delayed heartbeats can masquerade as host failure and why remediation actions need rate limits and blast-radius caps.
AWS · 2024Kinesis cell manager mistakes healthy hosts for dead→Config pipelines need the same staged rollout as code, so one bad push cannot mark every database host unhealthy to the routing layer at once.
GitHub · 2024Config change silenced database health checks for 36 minutes→Congestion collapse, backoff/jitter on retries, and observability that survives the outage it's reporting on.
AWS · 2021The autoscaler that fought the network→Database sequences guarantee uniqueness, not contiguity — gap-free per-tenant numbering needs an explicit counter row updated inside the transaction.
incident.io · 2021Database upgrade made incident IDs skip 32 numbers→Failover correctness under provider-initiated events; chaos-testing the real failure triggers.
Discord · 2020A cloud live-migration tipped over Redis→The canonical CAP-in-practice story: consistency vs availability under partition, plus async-replication data-loss risk.
GitHub · 201843 seconds that cost 24 hours→Disaster recovery: define RPO/RTO and, above all, prove your restores actually work.
GitLab · 2017rm -rf on the wrong database→Deployment safety and idempotency: detect partial rollouts; never let one un-updated node run divergent logic.
Knight Capital · 2012$440M in 45 minutes→