Understanding monoliths
The simplest architectural style in which you can develop your application is a monolithic one. This is why many projects are started using this style. A monolithic application is just one big block, meaning that functionally distinguishable parts of the application, such as dealing with I/O, data processing, and the user interface, are all interwoven instead of being in separate architectural components. Monolithic applications have the following advantages:
- They can be easier to deploy such a monolithic application than a multi-component one as there is simply one thing that needs to be deployed.
- They can also be easier to test, as end-to-end testing just requires that you launch a single component.
- Integration between different parts of the system is usually easier
- Solutions can be scaled by just adding more instances behind a load balancer.
With all those advantages, why would anyone dread this architectural style? It turns out that despite those advantages...