Synchronous communication coordinates distributed services through a request-and-response exchange: the requesting application makes a network call and waits for the other system’s result before continuing. This remains a common communication pattern in microservices, where services such as Users, Reservation, Rental, Inventory, and Billing exchange information. section 4.0
Common synchronous API protocols include:
- REST over HTTP, using annotation-based Quarkus APIs for both servers and clients. section 4.0
- GraphQL, which lets clients request specific data and combine multiple data types in one HTTP request. section 4.0
- gRPC with Protocol Buffers, providing a high-performance, multilingual remote procedure call framework. section 4.0
The waiting relationship makes availability a system-wide concern. Synchronous protocols generally require participating services and communication paths to remain available; a failed service can propagate errors through the calling chain to the original requester. Retries, timeouts, and circuit breakers can contain failures, but they also increase or otherwise affect response time. section 9.3.1
A service call across the rental system
A request entering one car-rental service can call another service and wait for its response before proceeding. If a downstream service fails, the error may travel back through the chain to the original request issuer. The architecture assigns local development ports to Users, Reservation, Rental, Inventory, and Billing services. section 9.3.1 section 4.0
Figure 9.3 The synchronous communication failure propagation in microservices
Trace how a synchronous failure propagates through a microservices call chain. section 9.3.1





