In synchronous communication the caller waits for the response to arrive within some expected timespan. Typical examples would be HTTP based protocols like REST or GraphQL. The request-response model forces the client to handle errors immediately and implement countermeasure techniques (like retries) to become available and operational. This kind of inter-service communication often makes for tightly coupled systems but they are easy to implement and well understood.