Have you ever stumbled across the terms "resilient software design" or "resilient app?” I bet you have. Their use has been rapidly increasing lately and the idea behind the concept might come extremely helpful for you. Still, it's not part of the basic IT knowledge, yet. So, what exactly is resilient software design? Why do we need it? And how do we do it? It's time for a quick introduction – and a tip about where to find what you need to try it out for yourself.
"Don't try to avoid failures. Embrace them." – That's the mantra of resilient software design. It's contrary to what traditional availability approaches aim at: They try to avoid failures as long as possible so that it's unimportant how long it takes for a system to recover. The resilience approach, by contrast, is to simply accept failures as unavoidable factors and to focus on the minimization of the recovery time, instead. Resilient software design is about making sure that if an unexpected error occurs, your users ideally don't even notice or, at least, your software keeps on working on a gracefully degraded level.
Why is system availability so crucial?
Usually, software is designed to fulfill two purposes: It has to meet the customer needs and to generate money. These two tasks are usually intertwined: if your system is unavailable, it can't do what it is supposed to do. This might disappoint your users, who, as a result, don't want to spend money on it. Your software is only valuable if it is available. It's just as simple as that.
How to develop resilient applications?
There are many different principles and patterns you can use to make your software resilient. It is, however, not easy to find the combination that fits your applications best. Our new guide gives an overview of the various options you have and detailed information about the individual patterns. Have a look at examples for applied resilience principles and find out how to develop your own resilient apps on SAP Cloud Platform.