Containers, Microservices, and the Monolith Nobody Admits They Have
Somewhere in the early 2010s, “microservices” became the answer to a question most engineering organisations hadn’t finished asking yet. The benefits were real — independent deployability, team autonomy, the ability to scale specific components without scaling everything — and the pattern spread rapidly, often outpacing the organisational and architectural maturity needed to do it well. What many organisations ended up building, without necessarily realising it, is what I’d call a distributed monolith: a collection of services that are deployed independently but are so tightly coupled in their runtime dependencies that they behave like a monolith in every way that matters. When service A breaks, services B, C, and D break. When you want to change the data schema, you have to coordinate a deployment across six teams. When you want to understand the blast radius of a configuration change, you have to trace dependencies through a graph that nobody has fully documented. ...