- Home
- Software Architecture
- Microservices vs monolith: the wrong call costs years
Microservices vs monolith: the wrong call costs years.You need pragmatic guidance, not dogma
It isn't a binary choice. The right answer depends on your context: team, scale, domain and organisational maturity.
Signs you'll recognise
If more than one sounds familiar, it isn't a coincidence — it's a pattern.
The right architectural choice is the one that solves your context's problems — not Netflix's.
Why it happens
Microservices have become the industry default, but for most organisations they're premature. They add operational complexity, network latency and infrastructure costs that a well-structured monolith doesn't have.
On the other hand, a monolith with no internal structure turns into a big ball of mud that nobody can evolve. The problem isn't the monolith — it's the absence of internal boundaries.
For most teams, the right answer is the "modular monolith": a monolith with clear internal boundaries that can be decomposed into services when — and if — it's needed.
Breaking services out should be driven by organisational need (autonomous teams) and scale, not by trend.
How we step in
We work inside your organisation, not from the outside. Change happens in the code and in the teams.
Context assessment
We analyse the domain, the team, the scale and operational maturity, and identify the real constraints and requirements.
Target architecture design
We design the right architecture for the context: modular monolith, selective services, or full decomposition.
Implementing boundaries
We introduce boundaries between modules with clear interfaces. The system becomes modular and potentially decomposable.
Guided evolution
We monitor and iterate. If and when it's needed, we extract specific services for concrete reasons.
What changes afterwards
The right architecture
The architectural choice is based on context, not trend.
Managed complexity
Architectural complexity is proportional to the complexity of the problem.
Clear boundaries
Modules have explicit interfaces and defined responsibilities.
Evolvability
The architecture can evolve as requirements change, without rewrites.
Do you recognise these signs in your organisation?
How we can help
The services we use to tackle this kind of problem.
Related problems
These warning signs tend to show up together. Explore the related topics.
Further reading in Learn
Articles by our team that look closely at the issues behind this challenge
From monolith to microservices: when it makes sense and how to get it right
Moving to microservices isn't always the right answer. A practical roadmap for deciding when to extract, what to isolate and how to keep delivery moving along the way.
Evolutionary architecture: how to evolve your software without rewriting everything
Software architecture isn't designed once and left alone. It evolves alongside the business, incrementally. A guide for anyone who wants to modernise without stopping delivery.
Cost of change in software development: why it keeps growing
As software grows, changing the product gets harder and harder. The cost of change is one of the clearest signs that architecture, organisation and delivery have stopped evolving together.
Tell us where you're stuck
A fragile prototype, a burdensome legacy codebase or unpredictable delivery: that's where we start