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-analysis3department: "skeptic"4description: "Systematic failure scenario discovery and resilience mitigations"5version: 16triggers:7 - "failure"8 - "error"9 - "crash"10 - "downtime"11 - "resilience"12 - "availability"13 - "recovery"14 - "rollback"15 - "degradation"16 - "timeout"17 - "retry"18---1920# Failure Mode Analysis2122## Purpose23Systematically identify failure scenarios for proposed features and design mitigations that maintain system resilience.2425## Inputs26- Feature or infrastructure change being analyzed27- System architecture (services, databases, APIs, third-party dependencies)28- Current reliability requirements (SLA/SLO targets)29- Existing monitoring and alerting setup3031## Process3233### Step 1: List System Components34Enumerate all components involved: services, databases, APIs, third-party dependencies, caches, queues, CDNs, DNS, and any shared infrastructure.3536### Step 2: Enumerate Failure Modes Per Component37For each component, systematically consider:3839- **Network failures**: Timeout, DNS resolution failure, TLS handshake failure, connection reset, packet loss40- **Data failures**: Corruption, inconsistency between stores, migration errors, schema drift, encoding issues41- **Resource exhaustion**: Memory leak, CPU saturation, connection pool exhaustion, disk full, file descriptor limits42- **Dependency failures**: Third-party API down, rate limited, schema change, authentication revoked, region outage43- **State failures**: Race conditions, stale cache serving wrong data, split-brain in distributed systems, phantom reads4445### Step 3: Assess Cascade Potential46Map 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.4748### Step 4: Design Mitigations49For each failure mode, define:5051- **Graceful degradation**: What functionality survives? What's the user experience during failure?52- **Retry strategy**: Exponential backoff with jitter, circuit breaker thresholds, max retry limits53- **Fallback behavior**: Cached data, default values, error states, read-only mode54- **Recovery procedure**: Automatic vs manual recovery, estimated time to recovery, data reconciliation steps5556### Step 5: Define Monitoring Signals57For each failure mode, specify the metric, log pattern, or alert that detects it. Include detection latency — how quickly will you know?5859### Step 6: Plan Rollback Strategy60Define rollback approach: feature flags for instant disable, database rollback scripts, deployment rollback procedure, data cleanup if needed.6162## Output Format6364### Failure Mode Table6566| Component | Failure Mode | Severity | Cascade Risk | Mitigation | Monitoring Signal |67|---|---|---|---|---|---|68| [Component] | [What fails] | Critical/High/Medium/Low | [What else breaks] | [Specific mitigation] | [Metric/alert] |6970### Cascade Diagram71```72[Component A fails]73 ├── [Component B] — degraded (uses cached data)74 ├── [Component C] — down (hard dependency)75 │ └── [Component D] — down (depends on C)76 └── [Component E] — unaffected (independent)77```7879### Rollback Checklist80- [ ] Feature flag to disable: [flag name]81- [ ] Database rollback: [migration name / script]82- [ ] Deployment rollback: [procedure]83- [ ] Data cleanup: [steps if needed]84- [ ] Communication: [who to notify]8586## Quality Checks87- [ ] Every external dependency has failure analysis88- [ ] Cascade paths are fully mapped with blast radius89- [ ] Mitigations don't introduce new failure modes90- [ ] Monitoring covers detection of each identified failure91- [ ] Rollback strategy is defined and tested92- [ ] Recovery time estimates are documented9394## Evolution Notes95<!-- Observations appended after each use -->