Throughout this chapter, we've talked about the prevention of failures and how we can develop an application with high availability and resilience. In this section, we will see how our structure can protect us.
By the time our application has performed in only one instance and is very flexible due to the distribution of components in containers, we are still very susceptible to systemic failure.
The use of redundancy is an interesting approach to solving this problem. With redundancy, even if a node of the application is lost, the others can continue responding.
A good example of redundancy for microservices consists of a load balancer with a usage policy to redirect the request. Many nodes can be created, and if one of these nodes fails, there's still another available to respond.
The following diagram seeks to show exactly that. A request is sent to the load balancer, which, according to some rule chosen by the development...