Sync vs async коммуникация?

Middle
379 просмотров
AFK Offer AI

Sync (gRPC/HTTP) — вызывающий ждёт ответа. Просто, понятно, но если downstream тормозит — ты тоже тормозишь. Async (Kafka/NATS/RabbitMQ) — отправил сообщение и пошёл дальше, получатель обработает когда сможет. Плюс async: устойчивость к сбоям, лучшее масштабирование. Минус: eventual consistency, сложнее дебажить. Правило: команды (сделай что-то) часто sync, события (что-то произошло) — async. В Go для sync — gRPC, для async — sarama/confluent-kafka-go.

Следующий вопрос

Что такое proxy layer?