This page is part of my personal knowledge database, that helps me to store and navigate my learnings.
Read on here for details

Monolith Architecture

Monolith Architecture describes an approach in software design, in which all the components of a software system are deployed together. Together means within a single binary, or within a single installation. Components can refer to whole tiers or logical parts within one.

The advantages are

All of the advantages, as Martin Fowler observed, are strong in the early stages of most application lifecycles, but weaken and inverse with growing complexity. This leads to a host of disadvantages, including:

Hence, the later life of growingly complex applications require a different approach: Microservice Architecture. It is entirely possible, actually mostly recommended, to start out monolithic and then use the Strangler Pattern (or akin) to move the architecture.

Sources