Monoliths vs Microservices

2025-11-29

This has been debated for a long time, but you can't say that either side is a clear winner. I like to put aside the polarizing tone and acknowledge that both sides have real merits and try to offer a middle ground.

Where Monoliths Shine

Monoliths work well when the system is:

  • relatively small or medium in scope
  • developed by a single team/company
  • still evolving rapidly

They minimize operational overhead and make it easier to keep the functionality conceptually unified.

Where Microservices Make Sense

Microservices emerged as an architectural response to specific pressures:

  • parts of the system scale very differently
  • the system has clear, stable boundaries between subdomains
  • failure isolation or infrastructure specialization is essential

Without these pressures, microservices often increase complexity unnecessarily, and introduce operational overhead

A More Nuanced Approach

My preferred approach is to start from a well-designed modular monolith. Then, instead of decomposing everything, extract only the components with distinct scaling or reliability requirements.

Examples:

  • a search service that receives millions of requests for every checkout
  • a machine-learning pipeline that needs GPUs while the rest doesn’t

You keep one system, one mental model, one deployment path. Until the system itself tells you otherwise.