Veltos.Tech

Development

Monolith

Also known as: monolithic architecture, modular monolith

Definition

A monolith is an application built and deployed as a single unit: all the code lives in one repository, runs in one process and works against one database, releasing as a whole, which buys simplicity at the cost of coupling.

A monolith is the default architecture, and that is not an insult. One process means a call between modules is a plain function call rather than a network request: it does not time out, does not need retries and is easy to debug. One database means a transaction is genuinely a transaction and data does not drift apart. One deployment means no version mismatch between parts of the system. For most commercial projects, from websites and stores to customer portals and internal tools, that is enough for years.

Trouble starts not with code volume but with the absence of internal boundaries. When modules reach freely into each other’s tables and business logic is smeared across controllers, the monolith becomes a big ball of mud: every change touches its neighbours, regressions get unpredictable, and build and release times grow. Hence the practical middle ground, the modular monolith: one deployment, but strictly separated domains with their own boundaries and their own tables, reachable only through an internal interface.

A workable selection rule: split off as a service only what genuinely needs independent scaling, independent release or a separate team, and leave the rest alone. Moving from a modular monolith to microservices later is feasible precisely because the boundaries already exist. The reverse journey, from premature microservices back to a monolith, costs considerably more, and those projects turn up for audit regularly: eight services, two engineers on staff, and six months to add one field to a form.

Related terms

Related services

Read more

Need this done, not just defined?

We do this work, not only write about it. Describe the task and we will scope it and send a staged estimate.