Concepts like micro services and antifragility are currently trending in our community and this might be a hint that there are some new architecture paradigms on the horizon. Even if not, those terms describe ideas on how to not only make teams agile but also the software itself. So what are micro services and how might they help us to design and implement software systems? Well, we are using means of decomposition throughout our systems - methods, classes, packages and modules. And in the end, we put all that in a big monolith and hand it over to production … Micro services take the concept of decomposition right to our runtime environments and let us design really loose coupled systems. Those systems are built to handle the failure of single components, they are easier to test and to maintain. Last but not least, they support the idea of continuos delivery, which is also more about dealing with a lot of small changes than huge releases. The flexibility resulting here enables us to pursue one of the central paradigms of agile development not only on an organizational but also on a technical level: Embrace change!