advanced

Fault tolerance

Continue operating through partial failures using timeouts, retries, circuit breakers, bulkheads, and fallback modes. Связывайте target с user impact и verification.

Отказоустойчивость сохраняет полезность системы при сбоях компонентов. Паттерны: timeout, ограниченные retry с jitter, circuit breaker, bulkhead, идемпотентные обработчики и fallback-ответы. Проектируйте под частичный отказ — сети и диски рутинно ломаются на масштабе.

Retry должны быть безопасными и ограниченными. Breaker прекращает долбить больную зависимость. Bulkhead выделяет пулы потоков или лимиты соединений.

На интервью: circuit breaker на внешний API в схеме, политика retry и безопасный fallback UX.

Типовые ошибки: бесконечные retry на 500; общий пул потоков исчерпан одной медленной зависимостью; fallback, тихо нарушающий бизнес-правила.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Timeout на все внешние вызовы.
  • Retry только идемпотентных операций с лимитом.
  • Circuit breaker и bulkhead.
  • Видимое пользователю поведение fallback.