Независимые вызовы нужно выполнять параллельно: время станет близко к максимуму из 10 и 2 секунд. Но сервис, отвечающий за 10 секунд, уже исчерпывает весь бюджет оркестратора.
Как исправить оркестратор с двумя независимыми внешними вызовами, чтобы уложиться в бизнес-лимит 10 секунд при длительностях сервисов 10 и 2 секунды?
Независимые вызовы нужно выполнять параллельно: время станет близко к максимуму из 10 и 2 секунд. Но сервис, отвечающий за 10 секунд, уже исчерпывает весь бюджет оркестратора.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Независимые вызовы нужно выполнять параллельно: время станет близко к максимуму из 10 и 2 секунд. Но сервис, отвечающий за 10 секунд, уже исчерпывает весь бюджет оркестратора.
Задайте общий deadline, выделите часть бюджета на сеть, очередь и сборку ответа и запускайте оба вызова одновременно. По истечении бюджета отменяйте ожидание и возвращайте предусмотренную ошибку либо допустимый частичный результат. Параллельность убирает последовательные 12 секунд, но не гарантирует укладывание в строгие 10: медленный сервис придётся ускорить, ограничить его timeout или согласовать fallback. Отмена ожидания не гарантирует отмену внешнего побочного эффекта.