Any mention of monolithic applications would raise an eyebrow or two today - and with a good reason. Our accumulated experience is teaching us that monolithic applications bring many issues, not least important them being hard to maintain. On the other end of the specter we find microservices, the preferred design in the eyes of many. And there are myriads of designs and architectures in between these two extremes. Who's right there?
In this presentation, we will analyze common design problems, starting from monolithic designs, paying extra attention to pathological coupling, violating transactional consistency and unclear data ownership.
By the end of this presentation, you will learn that, from perspective of design, there is no substantial difference between multitier monoliths and microservices - assuming each of them is done right. And more, you will learn that a proper, maintainable monolith can easily be morphed into microservices, and vice versa.
This talk was presented two times so far at conferences (not recorded).
You can view the slide deck here: https://www.slideshare.net/secret/gjBI8gvaENp09C
Some slides are not entirely in English - I would fix and improve them if this session is accepted.
Zoran is Principal consultant at Coding Helmet Consultancy, speaker and author of 100+ articles, and independent trainer on .NET technology stack. He can often be found speaking at conferences and user groups, promoting object-oriented development style and clean coding practices and techniques that improve longevity of complex business applications.