Немного о тайм-аутах в распределённых системах
Тайм-аут — это не «подождать подольше», а явное решение о том, сколько мы готовы ждать ответа, прежде чем считать операцию неуспешной. Слишком большой тайм-аут маскирует деградацию, слишком маленький — рвёт здоровые запросы под нагрузкой. Практика, которая себя оправдала: бюджет времени на запрос задаётся сверху и передаётся по цепочке вызовов, а каждый следующий хоп получает остаток бюджета, а не свой собственный фиксированный тайм-аут. Так система не «складывает» задержки.