Workshop: Quick Start to Resilient Software Design
by Uwe Friedrichsen
Microservices. APIs. Cloud native. Always on. Near-realtime. And so on. Today’s IT landscapes are highly interconnected, massively distributed and need to be responsive 24×7. Downtimes are not an option. Long response times are not an option, either.
In the past, software developers did not care. Availability was an operations problem. So, let the admins configure the Service Mesh properly and we are done! Sorry, not that easy (anymore). The imponderabilities of distributed systems hit us at the application level. Thus, time to learn resilient software design.
In this workshop, we will first discuss why we need resilient software design. Then we will build a little essential patterns toolbox for handling timeouts, failures, overload situations and data consistency. Finally, we will discuss how to implement them in practice and which parts we can (still) delegate to our infrastructure.
You will leave this workshop with a toolbox to create more robust systems and practical advice how to implement them.
AGENDA
*Understanding resilience and why we need it (90’)
* Handling downstream errors (120’)
* Handling upstream errors (70’)
* Complementing patterns (20’)
* What we can delegate to the infrastructure (30’)
*Closing thoughts and concluding Q&A (30’)
Breaks based on wall clock
PREREQUISITES
Notebook/Desktop with up-to-date browser (we will do some exercises on a Miro board)
Editor/IDE of your choice (we will do a few little coding exercises. You can use the programming language of you choice. The examples will be in Python).