Retry

The problem solved by retry and circuit breaker stems from cascade failures caused by a service or a function inside a chain of calling becoming unavailable. In the following figure, we assume that five different functions or services have 99% availability, so they will fail once every 100 calls. The client observing this service's chain will experience the availability of A at only 95.09%:

Figure 7.5: A chain of functions or microservices would make their overall availability lower

What does this imply? It means that when this chain becomes eight functions long, the availability will become 92.27%, and if it's 20 functions long, this figure will decrease to 81.79%. To reduce the failure rate, we should retry calling to another instance of function or service when an error, such as HTTP 500, occurs.

But a simple or constant-rate retry is not enough. If we use a simple strategy, our retry calls would increase unnecessary loads to the already broken service. This would cause more problems than it would solve.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset