Designing good applications has become more demanding than ever: Extremely flexible, very high availability, scaling up and down on demand, rising user demands, sustainability, APIs as first class citizens while being secure like a fortress at the same time, and so on. The list appears to be endless. In the past, quite some of today's application demands have simply not existed yet. And some others we could easily delegate to the operations team. But that is not possible anymore. In this session, we will take a look at how our application design demands have changed, what you need to take into account to design good applications and how to tackle the challenges best. Let us get ready for the architectural work of the upcoming years and learn how to square the circle!
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 24x7. 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.
Traveler in the world of IT. Dot Connector. Cartographer of uncharted territory. Keeper of timeless wisdom. Translator between floors. Tries to make IT a (bit) better place.