sysdesign-fault-tolerance-patterns

Apply canonical fault-tolerance patterns to dependent services based on failure mode.

Updated Apr 23, 2026
One-click install
npx skills add https://github.com/danilods/matilha-sysdesign-pack --skill sysdesign-fault-tolerance-patterns
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sysdesign-fault-tolerance-patterns
Source: https://github.com/danilods/matilha-sysdesign-pack/tree/main/skills/sysdesign-fault-tolerance-patterns
Command: npx skills add https://github.com/danilods/matilha-sysdesign-pack --skill sysdesign-fault-tolerance-patterns

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill standardizes resilience in distributed systems by assigning canonical fault-tolerance patterns to failing dependencies, reducing retry storms and cascading outages.

Core Features & Use Cases

  • Pattern mapping: automatically classify failure signals (timeouts, errors, latency) into one of seven canonical patterns: Circuit Breaker, Exponential Backoff + Jitter, Bulkhead, DLQ, Checkpointing, Fallback, and Replication.
  • Guidance & templates: provides configurable templates for thresholds, time windows, and retry policies that align with SLA targets.
  • Validation & testing: supports chaos testing and instrumentation guidance to verify resilience.

Quick Start

Configure a critical service to auto-apply the most appropriate fault-tolerance pattern when a failure is detected.

Frequently Asked Questions about sysdesign-fault-tolerance-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent cascading failures in distributed systems when a critical dependency goes down?

To prevent cascading failures in distributed systems, apply the Circuit Breaker pattern with a fallback and timeout for synchronous critical dependencies. This isolates failing services, stops retry storms, and maintains system availability during outages.

What is the best way to handle asynchronous message processing failures without losing data?

The best way to handle asynchronous critical dependency failures is by combining a Dead Letter Queue (DLQ) with Exponential Backoff and Checkpointing. This ensures failed messages are safely stored for reprocessing without dropping payloads or overwhelming the system.

When should I use a bulkhead pattern for fault tolerance?

Use the Bulkhead pattern for fault tolerance when you need to isolate non-critical tasks, such as telemetry or logging operations. By partitioning resources, bulkheads prevent background task failures from degrading the performance of your primary synchronous services.

How do I configure retry policies and thresholds to align with my service SLA targets?

Configure retry policies and thresholds by encoding SLA targets, failure modes, and required metrics into your fault-tolerance configuration. This drives the selection of patterns like Exponential Backoff with jitter, ensuring time windows and retry limits are explicitly defined and versioned.

How can I verify that my system's fault-tolerance patterns actually work during an outage?

Verify fault-tolerance patterns work during an outage by implementing chaos testing and instrumentation. This validates that your Circuit Breakers, Bulkheads, and fallback mechanisms activate correctly under real failure conditions and meet your defined SLA targets.

What fault-tolerance patterns should I apply to stop retry storms in dependent services?

To stop retry storms in dependent services, apply the Circuit Breaker pattern for synchronous calls and Exponential Backoff with jitter for asynchronous tasks. These canonical fault-tolerance patterns standardize resilience by controlling traffic to failing dependencies.