Reliability is a critical quality of any enterprise application. It is even more significant if the application is deployed in an ever-changing environment that meets business requirements through software innovation. Ibryam defines this concept as follows:
- Fragile: The system is unable to survive under stress.
- Robust: The system withstands stress to an extent, and then it breaks.
- Resilient: The system adapts to stress and failures before it reaches the breaking point.
- Anti-fragile: It feeds on stress and change and so it's much harder to create.
This is better understood with the help of the following diagram:
In parallel to reliability, a service mesh provides a resilient system through continuous improvement from sidecar proxies.
The use of specialized libraries such as Twitter's Finagle and Netflix's Hystrix help...