- Isolate the misbehaving service and avoid to take down the entire application by exhausting all the resources.
- Types
- Partition service instances: Ensure that resources used to run one service instance don't affect the resources used to run another service instance.
- Technologies
- Partition clients: Ensure that resources used to call one service don't affect the resources used to call another service.
- Technologies
- For partitioning services, consider to use:
- Virtual machines
- Containers
- Processes
- For partitioning clients, consider to use
- Processes
- Thread pools
- Semaphores
- For partitioning services, consider to use:
- Preserve some functionality in the event of a service failure.
Topic | Consideration | Possible Solution Options |
---|
- Web Article: Bulkhead pattern | https://docs.microsoft.com/en-us/azure/architecture/patterns/bulkhead
- Web Article: Preventing Systemic Failure: Bulkheads in Microservice Architectures | https://dzone.com/articles/preventing-systemic-failure-bulkheads-in-microserv
- Book: Michael N.(2018). Chapter 5 Stability Patterns, Release It! (pp. 91-128). Pragmatic Bookshelf