При недоступности части системы приложение снижает функциональность, но продолжает работать. В Go: проверка доступности зависимостей (health), при сбое возвращать заглушки или кешированные данные; circuit breaker не вызывать сломанный сервис. Критичные операции - быстрый отказ с понятной ошибкой; некритичные - fallback (пустой список, кеш). Мониторинг и алерты по деградации.
if !cache.IsHealthy() {
return nil, ErrServiceUnavailable
}
data, err := cache.Get(ctx, key)
if err != nil {
return getFromDB(ctx, key) // fallback
}