Every service has a breaking point—a maximum load for which it was designed. If the load exceeds this, the service can become unreliable. In a microservices architecture, requests are fulfilled by multiple services working in conjunction. This can cause hot spots on specific utility services, which are used by more than one service. A classic case is a User Account Service, which is the repository for all user-level data. For example, in the following diagram, the User Account Service is called by multiple services, for user-related information, and this service becomes a hotspot:
One solution to the problem is to carry the required data in every service call, like so:
The tradeoff here is the increased amount of data that is carried in each microservice call.