Synchronous and Asynchronous Communication in Microservices