ApplicationBeginner

Is a monolith bad architecture?

“Defend or attack the statement "a monolith is bad architecture". How does a monolith scale, and where is its real ceiling?”

What this tests

  • Whether the candidate separates deployment shape from code quality
  • Concrete knowledge of how a monolith scales horizontally
  • Identification of the database as the actual ceiling
  • Naming the real disadvantages honestly rather than dismissing them

Answers by level

Read the beginner answer first and notice what is missing.

The statement is false as stated. A monolith is one deployable; it says nothing about the boundaries inside it. Its advantages are real: one build, one deploy, local development that runs the whole product, in-process calls that cannot time out, and database transactions that span the whole domain. Most distributed-systems problems simply do not exist.

A monolith scales horizontally the same way services do: keep it stateless, run N copies behind a load balancer, put sessions in Redis. What does not scale that way is the database, and that ceiling is the same whether the app tier is one process or twenty. The honest disadvantages are elsewhere: a large codebase where boundaries erode, coupled deploys when many teams share one release, and inefficient scaling when one module needs far more CPU than the rest and drags every copy with it.

So the question is not monolith or not, but whether its internal boundaries are enforced and whether the team has hit one of those specific limits.

Green flags · Red flags

Strong green flag · Orders the ceilings by when they appear and gives a targeted fix for each.
Green flags
  • Separates deployment shape from internal structure
  • Describes horizontal scaling of a stateless monolith behind an LB
  • Identifies the database as the shared ceiling
  • Lists the genuine disadvantages (deploy coupling, heterogeneous scaling, boundary erosion)
  • Mentions transactions and local development as concrete benefits
Red flags
  • "Monoliths do not scale."
  • Cites Netflix or Amazon as proof without matching their scale or team size
  • Cannot say how a monolith runs on more than one server
  • Dismisses the disadvantages entirely (the opposite error)

Follow-up questions

F1
What state prevents a monolith from being copied?
F2
Give a case where the monolith genuinely should be split.
F3
How do you keep a monolith from becoming a big ball of mud?

Scenario

A five-year-old Rails monolith serves 4,000 rps with p99 of 180 ms from six identical instances. A new VP wants a "modernisation" programme to split it into services. The only recurring incident is Postgres connection exhaustion during deploys. Argue for what should actually change.

Learn this topic