Повторяют временные сбои только с учётом идемпотентности: timeout, часть сетевых ошибок, 429 и некоторые 5xx. Ошибки данных, прав и постоянной конфигурации обычно требуют исправления.
Какие ошибки внешнего API стоит ретраить, а какие нет? Как отличить сетевые ошибки?
Повторяют временные сбои только с учётом идемпотентности: timeout, часть сетевых ошибок, 429 и некоторые 5xx. Ошибки данных, прав и постоянной конфигурации обычно требуют исправления.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Повторяют временные сбои только с учётом идемпотентности: timeout, часть сетевых ошибок, 429 и некоторые 5xx. Ошибки данных, прав и постоянной конфигурации обычно требуют исправления.
Сетевая ошибка может произойти до подключения, во время TLS или после отправки запроса. Последний случай оставляет результат операции неизвестным, поэтому слепой повтор POST опасен. Используйте типы исключений HTTP-клиента, а не поиск слов в сообщении. Для retry задайте общий deadline, ограничение попыток, exponential backoff с jitter и учёт Retry-After. Не все 5xx временные, а 409 может требовать проверки состояния. Логи должны сохранять технический контекст без токенов и тела с персональными данными.