So far, we have not discussed the performance characteristics of the HotROD application. If we refer to Figure 2.6, we can easily make the following conclusions:
The call to the
customer
service is on the critical path because no other work can be done until we get back the customer data that includes the location to which we need to dispatch the car.The
driver
service retrieves N nearest drivers given the customer's location and then queries Redis for each driver's data in a sequence, which can be seen in the staircase pattern of RedisGetDriver
spans. If these operations can be done in parallel, the overall latency can be reduced by almost 200ms.The calls to the
route
service are not sequential, but not fully parallel either. We can see that, at most, three requests can be in progress, and as soon as one of them ends, another request starts. This behavior is typical when we use a fixed-size executor pool.