Building web applications rapidly is pretty easy in 2017. Lots of great tools and frameworks are available to streamline development by reusing code for common scenarios.
But as software teams grow it becomes increasingly difficult to coordinate effort. We might find ourselves trading off team autonomy with alignment to the business goals and perhaps oscillate around an evasive balancing point. Without a clear strategy the codebase underlying our product can become singular monstrosities. Dev teams shout out to “break up the monolith!”, technical debt mounts and progress slows.
The concept of micro-services (or “service-oriented” architecture) has risen in popularity in recent years as a means to break large pieces of software (“monoliths”) up into smaller parts and allow for team specialisations or more obvious division of responsibilities.
However, micro-services also come with some significant challenges. In many cases simply deciding on the responsibilities of each service can be a tedious and confusing process. Systems that require many underlying services can make deployment complex and risky. Product changes that cut across many services add steps to the development workflow and increase the effort needed to effectively test and release code.
Grappling with these growing pains, the team at Expert360 decided to take the best ideas from micro-services and combine them with more traditional approaches into a “Modular Monolith”; an emerging strategy that addresses many common challenges.
The approach is made possible by the Elixir programming language and its underlying “BEAM” virtual machine; the same system used in most telecommunication switching networks.
This talk was given at Linux.conf.au 2018 (LCA2018) which was held on 22-26 January 2018 in Sydney Australia.
linux.conf.au is a conference about the Linux operating system, and all aspects of the thriving ecosystem of Free and Open Source Software that has grown up around it. Run since 1999, in a different Australian or New Zealand city each year, by a team of local volunteers, LCA invites more than 500 people to learn from the people who shape the future of Open Source. For more information on the conference see
#linux.conf.au #linux #foss #opensource