Назад к подготовке

Cleanup и fallback при ошибке

Как не заблокировать систему, если fallback или cleanup тоже может упасть?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

Cleanup должен быть best-effort и изолирован от основного failure path. Fallback имеет timeout, bounded retries и понятный degraded result.

Полный разбор

После ошибки нельзя бесконечно зависать в cleanup или fallback. Cleanup стоит делать идемпотентным и best-effort: закрыть ресурс, записать лог, отправить событие, но не блокировать основной поток без лимита времени.

Fallback должен иметь отдельный timeout, ограниченное число попыток и предсказуемый результат: cached value, default response, queued retry или явная ошибка. В логах важно различать original failure и failure fallback-ветки, иначе отладка станет непрозрачной.