## Review of article by [[@David Heinemeier Hansson]] on [The Majestic Monolith](https://medium.com/signal-v-noise/the-majestic-monolith-29166d022228) - The patterns that make sense for organizations orders of magnitude larger than yours, are often the exact opposite ones that’ll make sense for you. - Every time you extract a collaboration between objects to a collaboration between systems, you’re accepting a world of hurt with a myriad of liabilities and failure states. What to do when services are down, how to migrate in concert, and all the pain of running many services in the first place. - Having your system described as “monolithic” is usually a point of derision.- Eliminates as much needless abstraction as you can swing a hammer at.- It’s a big fat no to distributing your system lest it truly prevents you from doing what really needs to be done.- we have just 12 programmers, and many of those are busy keeping the systems we’ve been creating over the last decade operational.- It’s not compatible with writing 100% native apps- In addition to these formal constraints is the mission to write beautiful, understandable, and succinct code. Code that not only makes us smile while we write it, but also when we later have to extend or patch it.- One of the benefits to the majestic monolith is that it basically presumes that the people who work on it also understand it. It’s much easier to silo knowledge and responsibilities with a proliferation of smaller systems. We’ve had that happen for the few external, shared services we do have, like Basecamp ID (shared authentication for all generations of the Basecamp app). “Oh, you gotta talk to Jeff about that”.- This in turn puts immense pressure on making the application understandable and changeable by individuals, not teams. - Individuals not teams is interesting. - Who cares if those who aren’t invested in walking that path use the tools and patterns to screw themselves over? Maybe everyone needs to do that once or twice before appreciating the ropes that guides you into the gala premiere.- The Majestic Monolith doesn’t pretend to provide a failsafe architectural road to glory.- Many programmers suffering under many oppressive influences will turn any architecture made with any tool into a big pile of mud. So worrying too much about how to save those who’s likely out of reach anyway isn’t a productive use of energy. And it takes all the ones who do care down the wrong path.- - TL;DR: ==Run a small team, not a tech behemoth? Embrace the monolith and make it majestic.==