How to organize your Code
Most nontrivial software systems suffer from significant levels of technical and architectural debt. This leads to exponentially increasing cost of change, which is not sustainable for a longer period of time. The single best thing you can do to counter this problem is to carefully manage and control the dependencies among the different elements and components of a software system, and that includes dependencies between micro-services. This session will first look at the major reasons why so many systems end up in an unmaintainable state and then show how to address the problem by defining an enforceable architectural blue-print for a software system using an innovative domain-specific language for the description of software architecture.