Synchronous communication - AWS Prescriptive Guidance

Synchronous communication

In synchronous communication, a client initiates a request to a service, as the following diagram illustrates. Examples include a request to fetch information, such as an HTTP GET request, or a request to mutate data, such as an HTTP PUT request. In either case, the client waits for the server to respond before it proceeds. Synchronous calls are familiar to most developers, are easy to implement and troubleshoot, and, in many cases, are the widely accepted standard for communication.

Synchronous communication between clients and microservices, or between microservices.

Benefits of synchronous communication include:

  • Predictable flow control – Deterministic execution and clear request-response cycles that are easier to understand compared with asynchronous communication.

  • Strong consistency – Immediate confirmation of data changes and state updates.

  • Simple error handling – Direct propagation of errors and exceptions.

  • Easy debugging – Straightforward request tracing and monitoring.

  • Protocol support – Well-established protocols such as HTTP and REST, which make implementation straightforward.

Synchronous communication has some drawbacks:

  • Tight coupling – Direct dependency of services on each other's availability.

  • Network impact – Increased network load because of constant open connections.

  • Resource utilization – Higher memory usage from maintaining connection states.

  • Cascading failures – Ability for issues in one service to quickly propagate through the system.