Просто retries — не про устойчивость, нужно добавить таймауты, backoff, jitter и идемпотентность
Retries помогают тебе, но могут добить соседний сервис.
Retries не делают систему надёжной, если ты не добавил:
- таймауты
- backoff
- jitter
- идемпотентность
Без них retries не решают проблему — они её усиливают.
Базовый набор:
1️⃣ Таймауты
Ждать вечно — ловушка.
Зависший запрос жрёт ресурсы:
- потоки
- память
- подключения к БД.
Чем дольше висит — тем хуже всем.
2️⃣ Backoff (повтор с увеличивающимися задержками)
Не лупи по падающему сервису.
Retries должны быть с паузами. Дай системе отдышаться.
3️⃣ Jitter (случайная задержка)
Если все ретраят одновременно — это давка.
Добавь случайность. Распредели нагрузку. Спаси бэкенд.
4️⃣ Идемпотентность
Некоторые API имеют сайд-эффекты — отправка писем, списания с карт.
Если повторить такой запрос — будет беда.
Сделай так, чтобы одинаковый запрос давал один и тот же результат. Без дублей.
Retries должны работать вместе с системой, а не против неё.
#resilience #highload
На связи с вами https://t.me/itarchitecture
Retries помогают тебе, но могут добить соседний сервис.
Retries не делают систему надёжной, если ты не добавил:
- таймауты
- backoff
- jitter
- идемпотентность
Без них retries не решают проблему — они её усиливают.
Базовый набор:
1️⃣ Таймауты
Ждать вечно — ловушка.
Зависший запрос жрёт ресурсы:
- потоки
- память
- подключения к БД.
Чем дольше висит — тем хуже всем.
2️⃣ Backoff (повтор с увеличивающимися задержками)
Не лупи по падающему сервису.
Retries должны быть с паузами. Дай системе отдышаться.
3️⃣ Jitter (случайная задержка)
Если все ретраят одновременно — это давка.
Добавь случайность. Распредели нагрузку. Спаси бэкенд.
4️⃣ Идемпотентность
Некоторые API имеют сайд-эффекты — отправка писем, списания с карт.
Если повторить такой запрос — будет беда.
Сделай так, чтобы одинаковый запрос давал один и тот же результат. Без дублей.
Retries должны работать вместе с системой, а не против неё.
#resilience #highload
На связи с вами https://t.me/itarchitecture
👍8🔥4👏2