Teams that have built monoliths for years are used to certain patterns of interaction between different parts of the code base. Simply replicating those patterns when splitting up a system into a distributed one usually introduces a lot of complexity and drawbacks that often totally subvert the desired effects of a split up of the system in the first place. The talk takes a look at a concrete sample of monolithic module interactions and identifies the problems that arise if that approach is transferred as-is into a distributed system. We then discuss an alternative variant of the monolithic implementation and how that approach improves the system’s modularity for the monolith and how it minimizes the cost and problems when splitting up the monolith or even starting with a system of systems in the first place.
Video producer: http://www.spring.io
Further reading: Refactoring Large Software Systems