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 операций.