Есть сервис, который агрегирует данные из пяти внешних систем: одна отвечает быстро, две медленные, одна нестабильная. Как спроектировать интеграцию, чтобы сервис оставался отказоустойчивым и предсказуемым по времени ответа?

Задайте общий deadline, независимые таймауты и ограниченную параллельность внешних вызовов. Быстрые результаты не должны ждать бесконечно медленные или нестабильные зависимости.

Короткий ответ

Что ответить на собеседовании

Задайте общий deadline, независимые таймауты и ограниченную параллельность внешних вызовов. Быстрые результаты не должны ждать бесконечно медленные или нестабильные зависимости.

Подробный разбор

Ответ с пояснениями

Задайте общий deadline, независимые таймауты и ограниченную параллельность внешних вызовов. Быстрые результаты не должны ждать бесконечно медленные или нестабильные зависимости.

Сначала уточните поведение пятой системы и обязательность каждого источника: в условии описаны только четыре из пяти. Для необязательных данных допускайте частичный ответ или кеш с меткой свежести; для обязательных — явную ошибку в пределах deadline. Добавьте bulkhead, circuit breaker и ограниченные retry с jitter лишь для безопасных повторов. У отменённых запросов освобождайте ресурсы. Наблюдайте latency и ошибки отдельно по источникам, а также общий p95/p99. Если SLA источника не укладывается в синхронный ответ, используйте фоновое обновление или асинхронный результат.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее