What do we mean when we say monolithic application?
A monolithic application, or monolith, is likely a term you have heard before, as it is probably the most popular pattern for developing an enterprise application. We call it a monolithic application if all the different components of the system are encapsulated into a single unit – for example, if the user interface, several domains, and infrastructure services are combined into a single deployable unit. The following figure illustrates this:
Figure 5.1 – Multiple services packed into a single application
Monolithic applications remain popular because of the following reasons:
- They are simple to develop. All code and concerns exist in a single place, and you do not need to worry as much about the failures that can come with remote procedure calls in distributed systems (more on this in the next chapter).
- They are simple to deploy. There is only one deployable, and its requirements...