Recently, I talked with someone about a monolithic software application. They didn’t know what I was talking about. Presumably because, so far in their career, they had always built either very simple applications, or monoliths. If you are not familiar with a modular approach, you may not know any different. So, how to explain a monolith to someone who doesn’t know the distinction?
Wikipedia describes a monolithic application in a lot of words. But I think that, as with most things, sometimes you have to have seen it with your own eyes to know what people are talking about.
The word monolith provides a hint: “A monolith is a geological feature consisting of a single massive stone or rock, such as some mountains, or a single large piece of rock placed as, or within, a monument or building.”
I love finding a good metaphor. Okay, so, what’s the difference between a monolith and a modular application? Here it is: Imagine you didn’t have a heart. You didn’t have lungs. You didn’t have kidneys. You didn’t have a liver. You didn’t have reproductive organs. Instead, you had a single organ that did everything. One big blob, in the center of your belly, with veins, nerves, whatever, all mixed up, like a plate of spaghetti. That’s a monolith.
Having spearate organs for each set of functions? That’s a modular approach. Nature can teach us a lot.