Вступить в клуб →
сложнаявопросREST API на NestJS и Express

Деградация платёжного провайдера кладёт весь сервис

Внешний платёжный провайдер начал отвечать за 20–30 секунд вместо обычных 200 мс. Через несколько минут ваш сервис перестал отвечать целиком: висят даже ручки, которые к платежам не обращаются. В коде исходящий вызов сделан без явного таймаута, а при ошибке выполняется до пяти повторов подряд.

Выберите меры, которые действительно устраняют каскадный отказ (верных вариантов два).

правильных вариантов может быть несколько

  • Поставить на исходящий вызов таймаут заведомо меньше клиентского и сразу отдавать понятную ошибку
  • Ограничить число одновременных вызовов провайдера и размыкать цепь при серии ошибок
  • Увеличить таймаут клиента и число повторов, чтобы запросы всё-таки доходили до провайдера и оплата не срывалась
  • Добавить реплик сервиса за балансировщиком: свободные инстансы разберут накопившиеся запросы, пока провайдер тормозит
  • Перенести вызов провайдера в worker threads, чтобы ожидание ответа не занимало event loop основного потока

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела