In microservices environment it makes sense to make multiple service calls concurrently or rather it sometimes becomes an unavoidable situation where you need to make some calls to multiple services at the same time. Making concurrent calls to services are good ideas because it will reduce the time taken to complete the whole operation rather than sum of time spent over the span of all calls.
For example, let’s say you make three calls in one service, and let’s further say that all three services can be called in any order. Let’s say each of these services take the time to respond to the client or caller as given below:
Service Call 1 takes 400ms
Service Call 2 takes 600ms
Service Call 3 takes 500ms
Total time taken by all three services to respond to the caller is 400 + 600 + 500 = 1500 ms. However if you make all three service calls concurrently or at the same time and wait for them to complete, then you have to incur the cost of waiting for the service that takes longest time. In this case, the Service Call 2 takes the longest time to complete and you have to wait maximum of 600 ms.