What is the difference between synchronous and asynchronous communication in microservices?
Answer
In synchronous communication, the calling service sends a request and waits (blocks) for a response before continuing — like an HTTP/REST call or gRPC call. This is simple to reason about but creates temporal coupling: if the downstream service is slow or unavailable, the caller is blocked too, and failures can cascade. In asynchronous communication, the caller sends a message (event) to a broker (Kafka, RabbitMQ) and continues immediately without waiting for a response. The receiver processes the message in its own time. Async communication decouples services in time, improves resilience to downstream failures, and naturally supports event-driven architectures, but it makes tracking the overall flow of a business operation more complex.
Previous
What is load balancing in the context of microservices?
Next
What is the difference between REST and gRPC in microservices?