Chapter 13. Dealing with Service Failures
One of the vulnerabilities in building a large microservice-based application is dealing with service failures. The more services you have, the greater the likelihood of a service failing, and the larger number of other services that are dependent on the failed service.
Cascading Service Failures
Consider a service that you own. It has several dependencies, and several services depend on it. Figure 13-1 illustrates the service “Our Service” with multiple dependencies (Service A, Service B, and Service C) and several services that depend on it (Consumer 1 and Consumer 2).
What happens if one of our dependencies fails? Figure 13-2 shows Service A failing.
Unless you are careful, this can cause “Our Service” to fail, and that failure can cause Consumer 1 and Consumer 2 to fail. The error can cascade, as shown in Figure 13-3.
A single service in your system can, if unchecked, cause serious problems to your entire application.
What can you do to prevent cascading failures from occurring? There are ...