Synchronous communication is a blocking call in which client
blocks itself from doing anything else, till the response comes back.
In Asynchronous communication, client can move ahead with its
work after making an asynchronous call. Therefore client is not
blocked.
In synchronous communication, a Microservice can provide instant
response about success or failure. In real-time systems, synchronous
service is very useful. In Asynchronous communication, a service
has to react based on the response received in future.
Synchronous systems are also known as request/response based.
Asynchronous systems are event-based.
Synchronous Microservices are not loosely coupled.
Depending on the need and critical nature of business domain,
Microservices can choose synchronous or asynchronous form of
communication.