advanced
Sync HTTP и gRPC
Используйте synchronous APIs для request-time decisions, учитывая latency budget, retries, timeout propagation и cascading failure risk.
Синхронный RPC подходит для request-time decisions: authorize user, fetch price, reserve inventory до ответа. HTTP/JSON везде; gRPC даёт typed contracts, streaming и меньший overhead во внутренней сети.
Компромисс: простота и debuggability против latency chains и cascading failure при замедлении зависимостей. Бюджетируйте end-to-end latency на hop; распространяйте deadlines; избегайте глубоких синхронных графов.
На интервью: сравните REST и gRPC для internal calls; объясните timeout propagation и почему retries на POST требуют idempotency.
Типовые ошибки: неограниченный synchronous fan-out; нет deadline context; retry storms на 500; gRPC без observability.
Чеклист:
- Таймауты per-hop из user-facing SLO.
- Распространяйте trace и deadline metadata.
- Ограничьте глубину и fan-out синхронных вызовов.
- Retry только safe, idempotent операций.