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.