An advantage of a monolith code base that can go overlooked is the minimal entry barrier to getting up and running for junior developers or new members of the team.
Setting up a basic database and my application with a background process was a pretty defined process. I’d have the readme on Github, and often in an hour or maybe a few I’d be up and running when I started on a new project. Onboarding a new engineering, at least for an initial environment would be done in the first day. As we ventured into micro-services onboarding time skyrocketed. Yes, we have docker and orchestration such as K8s these days to help, but the time from start to up and running a K8s cluster just to onboard a new engineer is orders of magnitude larger than we saw a few years ago. For many junior engineers this is a burden that really is unnecessary complexity.
— Give me back my monolith by Craig Kerstiens
Even those in senior roles may struggle to hold in their head an entire stack composed of micro-services. Sure it becomes familiar over time, but it’s another learning curve that can be unnecessary. It’s why I love working in monoliths.
They are a one-stop stack that contains everything or at least most of the components that we need to know about. An engineer can get up and running in a matter of hours. Why make it more difficult to onboard engineers?
Maybe the hype-cycle for micro-services is finally passing.