1. Identify failure scenarios
2. Avoid cascading failures
3. Avoid single points of failure
4.Handle failures gracefully – Allow fast degradation
5.Design for Failures
6.Circuit Breaker Pattern
7.Retry Design Pattern
8.Timeout Design Pattern
https://samirbehara.com/2018/08/06/making-your-microservices-resilient-and-fault-tolerant/