Bulk Head Pattern-MicroServices
Microservices are distributed in nature. In a distributed architecture, dealing with any unexpected failure is one of the biggest challenges to solve.
It could be a hardware failure, network failure, etc.
The ability of the system to recover from the failure and remain functional makes the system more resilient. It also avoids any cascading failures.
Problem Statement:
Assume you have a request-based, multi-threaded application (for example a typical web application) that uses three different components, A, B, and C. If requests to component C start to hang, eventually all request handling threads will hang on waiting for an answer from C. This would make the application entirely non-responsive. If requests to C are handled slowly we have a similar problem if the load is high enough.
For More info: https://skolaparthi.com/bulkhead-pattern/