Failure Mode Analysis
Purpose
Systematically identify failure scenarios for proposed features and design mitigations that maintain system resilience.
Inputs
- Feature or infrastructure change being analyzed
- System architecture (services, databases, APIs, third-party dependencies)
- Current reliability requirements (SLA/SLO targets)
- Existing monitoring and alerting setup
Process
Step 1: List System Components
Enumerate all components involved: services, databases, APIs, third-party dependencies, caches, queues, CDNs, DNS, and any shared infrastructure.
Step 2: Enumerate Failure Modes Per Component
For each component, systematically consider:
- Network failures: Timeout, DNS resolution failure, TLS handshake failure, connection reset, packet loss
- Data failures: Corruption, inconsistency between stores, migration errors, schema drift, encoding issues
- Resource exhaustion: Memory leak, CPU saturation, connection pool exhaustion, disk full, file descriptor limits
- Dependency failures: Third-party API down, rate limited, schema change, authentication revoked, region outage
- State failures: Race conditions, stale cache serving wrong data, split-brain in distributed systems, phantom reads
Step 3: Assess Cascade Potential
Map the failure tree: if component X fails, what else breaks? Identify single points of failure and shared dependencies. Determine blast radius for each failure mode.
Step 4: Design Mitigations
For each failure mode, define:
- Graceful degradation: What functionality survives? What's the user experience during failure?
- Retry strategy: Exponential backoff with jitter, circuit breaker thresholds, max retry limits
- Fallback behavior: Cached data, default values, error states, read-only mode
- Recovery procedure: Automatic vs manual recovery, estimated time to recovery, data reconciliation steps
Step 5: Define Monitoring Signals
For each failure mode, specify the metric, log pattern, or alert that detects it. Include detection latency — how quickly will you know?
Step 6: Plan Rollback Strategy
Define rollback approach: feature flags for instant disable, database rollback scripts, deployment rollback procedure, data cleanup if needed.
Output Format
Failure Mode Table
| Component |
Failure Mode |
Severity |
Cascade Risk |
Mitigation |
Monitoring Signal |
| [Component] |
[What fails] |
Critical/High/Medium/Low |
[What else breaks] |
[Specific mitigation] |
[Metric/alert] |
Cascade Diagram
[Component A fails]
├── [Component B] — degraded (uses cached data)
├── [Component C] — down (hard dependency)
│ └── [Component D] — down (depends on C)
└── [Component E] — unaffected (independent)
Rollback Checklist
Quality Checks
Evolution Notes
1---2name: failure-mode-analysis3description: Systematic failure scenario discovery and resilience mitigations4---56# Failure Mode Analysis78## Purpose9Systematically identify failure scenarios for proposed features and design mitigations that maintain system resilience.1011## Inputs12- Feature or infrastructure change being analyzed13- System architecture (services, databases, APIs, third-party dependencies)14- Current reliability requirements (SLA/SLO targets)15- Existing monitoring and alerting setup1617## Process1819### Step 1: List System Components20Enumerate all components involved: services, databases, APIs, third-party dependencies, caches, queues, CDNs, DNS, and any shared infrastructure.2122### Step 2: Enumerate Failure Modes Per Component23For each component, systematically consider:2425- **Network failures**: Timeout, DNS resolution failure, TLS handshake failure, connection reset, packet loss26- **Data failures**: Corruption, inconsistency between stores, migration errors, schema drift, encoding issues27- **Resource exhaustion**: Memory leak, CPU saturation, connection pool exhaustion, disk full, file descriptor limits28- **Dependency failures**: Third-party API down, rate limited, schema change, authentication revoked, region outage29- **State failures**: Race conditions, stale cache serving wrong data, split-brain in distributed systems, phantom reads3031### Step 3: Assess Cascade Potential32Map the failure tree: if component X fails, what else breaks? Identify single points of failure and shared dependencies. Determine blast radius for each failure mode.3334### Step 4: Design Mitigations35For each failure mode, define:3637- **Graceful degradation**: What functionality survives? What's the user experience during failure?38- **Retry strategy**: Exponential backoff with jitter, circuit breaker thresholds, max retry limits39- **Fallback behavior**: Cached data, default values, error states, read-only mode40- **Recovery procedure**: Automatic vs manual recovery, estimated time to recovery, data reconciliation steps4142### Step 5: Define Monitoring Signals43For each failure mode, specify the metric, log pattern, or alert that detects it. Include detection latency — how quickly will you know?4445### Step 6: Plan Rollback Strategy46Define rollback approach: feature flags for instant disable, database rollback scripts, deployment rollback procedure, data cleanup if needed.4748## Output Format4950### Failure Mode Table5152| Component | Failure Mode | Severity | Cascade Risk | Mitigation | Monitoring Signal |53|---|---|---|---|---|---|54| [Component] | [What fails] | Critical/High/Medium/Low | [What else breaks] | [Specific mitigation] | [Metric/alert] |5556### Cascade Diagram57```58[Component A fails]59 ├── [Component B] — degraded (uses cached data)60 ├── [Component C] — down (hard dependency)61 │ └── [Component D] — down (depends on C)62 └── [Component E] — unaffected (independent)63```6465### Rollback Checklist66- [ ] Feature flag to disable: [flag name]67- [ ] Database rollback: [migration name / script]68- [ ] Deployment rollback: [procedure]69- [ ] Data cleanup: [steps if needed]70- [ ] Communication: [who to notify]7172## Quality Checks73- [ ] Every external dependency has failure analysis74- [ ] Cascade paths are fully mapped with blast radius75- [ ] Mitigations don't introduce new failure modes76- [ ] Monitoring covers detection of each identified failure77- [ ] Rollback strategy is defined and tested78- [ ] Recovery time estimates are documented7980## Evolution Notes81<!-- Observations appended after each use -->