Traditionally, enterprise applications were built as single, large, monolith applications. They were also sometimes built on database-driven systems that stored all logic, from UI to business, and data. Typically, a monolith application looks something like the following:
The problem with the monolith service architecture is that any failure in the system will halt the entire system and a small problem can bring down the entire application. When any code change or new implementation has to be applied, this would result in rebuilding and redeploying the whole system.
Since there is a code change, the system has to go through the entire verification process. Any library upgrade is a nightmare. When the system becomes bulky, it is very difficult to maintain.
Any code refactoring to improve the code quality or performance will take a lot...