Nostalgia for the Monolith
Hello everyone! In hectic times, the mind seeks solace in memories. How can one not recall the good old days and monolithic application architecture?
Let’s start with security. Application security is currently growing in tandem with functionality. What happened before? An application is installed on a work computer at a facility where unauthorized access is impossible, or on a mainframe where not every employee has access. Today, the number of attack vectors is countless. Beyond the banal theft of passwords through social engineering, we have exotic methods, such as keyboard-click detection via sound and frequency analysis, and even biometric data substitution via an AI-generated identity. I think one day we’ll return to locked rooms, one-time passwords on paper, and film photos instead of digital ones to separate fakes from the real thing.
The monolith also made it easier for components to interact with one another. They were all in the same process. There was no need to authenticate for every request to every component, wait for connections, or worry about component failure due to unavailability. Everything was right there, at your fingertips.
The entire product was tested at once, not piecemeal from different vendors, like Frankenstein. And if this Frankenstein suddenly grew a tail in the next release, well, it’s impossible to predict how the center of gravity would shift and whether the whole structure would collapse.
Of course, maintaining a microservices architecture requires dedicated people, and as the number of components grows, command centers are required. And so on, with the accumulation of complexity errors and increasing entropy.
Sooner or later, a new team comes along, blames the previous team, product Ragnarok occurs, and the life cycle begins anew.
P.S. Yes-yes, the monolith has its well-known drawbacks, but can we not be boring for a minute and remember the times when we were younger, the sun was brighter, and girls smiled at us for no reason?