Clients of an application should be able to react properly to the backpressure emitted by an application.


The most typical way to react to failures in a distributed system is retries. Retries are performed because we assume that a failure is temporary, so retrying a request is expected to have a better outcome.

Issue with retries

Retries can have adverse effects, the one is described below:

Overloading a service

Think about the whole architecture of the systems and the various applications involved to determine where retries will be performed. Performing retries at multiple levels can significantly amplify the traffic coming from customers, which can overload services and cause issues.

For example, let’s assume we have four services A, B, C, and D that call each other in order, as shown in the following illustration:

Get hands-on with 1200+ tech skills courses.