Назад к подготовке

Endpoint с watchdog и устойчивым поведением

Как спроектировать endpoint, который вызывает нестабильный downstream или долгий pipeline и должен корректно переживать сбои?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

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

Нужны timeouts, cancellation, retries с backoff, circuit breaker, idempotency, fallback, health metrics и понятный status model.

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

Endpoint не должен бесконечно ждать downstream. Задайте timeout budget, cancel propagation и bounded retries с backoff/jitter. Для повторяемых запросов нужна idempotency key.

Если dependency деградирует, circuit breaker переводит часть запросов в fallback: cached response, partial result, degraded mode или async job with polling. Watchdog должен различать timeout, crash, stale heartbeat и бизнес-ошибку. Метрики: success/error rate, timeout rate, retry count, queue age, p95/p99 latency, breaker state и доля fallback.