Простыми словами
Стратегия, при которой пауза между повторными попытками растёт, снижая дополнительную нагрузку на нестабильный сервис. Например, после временной ошибки клиент повторяет запрос через 1, 2, 4 и 8 секунд, а не мгновенно. Это даёт зависимому сервису время восстановиться. Поэтому заранее определяют границы ожидания и поведение при отказе - иначе один медленный компонент начинает удерживать ресурсы и распространять проблему дальше.
Пример при разработке
После временной ошибки клиент повторяет запрос через 1, 2, 4 и 8 секунд, а не мгновенно. Это даёт зависимому сервису время восстановиться.
Это редакционный пример применения, а не часть определения или доказательство концепции.Механизм действия
Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.
Пример в работе
Решение принимают без учета механизма «Exponential Backoff», оценивая только ближайший эффект.
Перед изменением проверяют, как «Exponential Backoff» влияет на ограничения, стимулы, зависимости и вторичные последствия.
Ограничения
«Exponential Backoff» объясняет только часть происходящего в области «Надежность и SRE». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.
Источник
Marc Brooker. Timeouts, retries, and backoff with jitter. 2019.