monolith
noun
A monolith is an application whose components form a single unit and are usually built and deployed together.
The online shop started as a monolith, with the product catalogue, payments and administration in one application.
In software development, a monolith is an application built and usually deployed as one unit. Its Glossary · In briefuser interfaceA user interface (UI) is the part of a digital system through which a user receives information and operates it. Examples include screens, buttons, forms and voice controls.Read more, business logic and Glossary · In briefdatabaseA database is a structured collection of data that software can store, retrieve and modify. A database management system controls access to that data.Read more access may share the same Glossary · In briefcodebaseA codebase is the collection of source code used to build and maintain a software product or component.Read more and process. This says nothing about the quality of its internal structure: a monolith can still contain clearly separated modules.
How does a monolithic application work?
For a change, developers create a new application version and carry out a Glossary · In briefdeploymentA deployment is the process of installing and starting a chosen software version in a target environment so it can be tested or used there.Read more of the whole unit. Components call each other directly within the application. They usually do not need a network or external Glossary · In briefAPIAn API is a defined way for software to exchange data or call functions in other software without needing to know how that software works internally.Read more for those calls.
This can be practical for a new or relatively small product. The code is in one place, and the application is often easy to run and test locally. As a monolith grows, its parts can become more dependent on one another. A small change may then affect other parts, while every adjustment still requires deploying the whole application.
Monoliths and microservices
Glossary · In briefmicroservicesMicroservices are small, independently deployable software services that each perform a defined function and together form an application.Read more divide a system into smaller services that can run and be deployed separately. A monolith usually has one shared process and release cycle. This does not make microservices inherently better: they add network traffic, separate management and coordination between services.
A modular monolith keeps its parts in one application but makes their boundaries explicit. The team can combine simple deployment with a clear internal structure. The right choice depends on system size, dependencies and how teams organize Glossary · In briefreleaseA release is an identifiable software version prepared to be made available to users. It brings together one or more checked changes.Read more, among other factors.