The importance of service resiliency
Before we get into technical explanations, let us try to understand what it means to be resilient. The word resilient is the base word for resiliency, and it refers to how impervious an entity is to negative factors. It refers to how well an entity reacts to an inevitable failure and how well an entity can resist future failures.
In the context of our microservices architecture, our entities are our services, and we know that failures will happen. A failure can be as simple as a timeout during an internal operation, a loss of communication, or an unexpected outage of an important resource for the service.
Possible failure scenarios and how to handle them
Using the example of our healthcare booking system, let us say that our appointments service needs to retrieve the details of the related patient. The appointments service will make a synchronous HTTP call to the patients service. The steps in this communication step may look like this...