The Return of Monoliths: When Microservices Are the Wrong Choice
Monolithic architectures can still be the right choice for many organisations, offering simplicity, performance and easier governance when the complexity of microservices outweighs their benefits.

AI-generated
Why Monoliths Still Matter
Monoliths are not a relic of the past; they are a deliberate architectural choice that can bring tangible benefits in the right circumstances. A monolithic application bundles all business logic, data access and user interface into a single deployable unit. This simplicity can be a strategic advantage when teams are small, requirements are stable and the cost of managing distributed services would outweigh the gains.
The Trade‑off Between Simplicity and Flexibility
Deployment
In a monolith, a single deployment artefact replaces the need for orchestrating many containers or functions. This reduces the operational overhead of continuous delivery pipelines and eliminates inter‑service communication latency.
Performance
Because all components run in the same process, there is no network hop between services. Calls are direct function invocations, which can be faster than REST or gRPC calls that microservices rely on.
Complexity
Microservices introduce a new layer of complexity: service discovery, circuit breakers, distributed tracing and a need for robust DevOps tooling. For organisations without mature cloud operations, the overhead can be prohibitive.
When Microservices Become the Wrong Choice
- Small or Stable Codebases – If the application is unlikely to grow beyond a few hundred thousand lines of code, the benefits of splitting it into many services are marginal.
- Limited DevOps Maturity – Microservices require sophisticated CI/CD, monitoring and incident response. Teams that lack these capabilities may struggle to maintain reliability.
- Performance‑Critical Workflows – Real‑time processing or high‑throughput scenarios can suffer from the added latency of inter‑service calls.
- Regulatory or Security Constraints – Some industries require strict data isolation or audit trails that are easier to enforce in a single, well‑controlled codebase.
- Legacy Integration – Existing systems may already be tightly coupled; refactoring them into microservices can introduce risk without clear benefit.
Practical Implications for Decision‑Making
- Assess Team Size and Skill – A small, cross‑functional team can manage a monolith more effectively than a large distributed team.
- Measure Deployment Frequency – If your deployment cadence is already high and stable, the added complexity of microservices may not justify the change.
- Evaluate Latency Requirements – Benchmark end‑to‑end latency in the current monolith; if it meets user expectations, a microservice split may introduce unnecessary overhead.
- Consider Future Growth – Even if you start with a monolith, design it with modular boundaries in mind. This allows gradual extraction of services when the need arises.
Hybrid Approaches
Many organisations adopt a micro‑kernel or bounded‑context strategy: keep the core of the application monolithic while exposing specific features as lightweight services. This hybrid model offers the best of both worlds: the performance and simplicity of a monolith for core logic, and the scalability of services for peripheral functions.
Conclusion
Microservices are not a one‑size‑fits‑all solution. For many businesses, especially those with limited resources or stringent performance needs, a well‑structured monolith remains the optimal choice. By carefully weighing deployment simplicity, operational overhead, and performance trade‑offs, organisations can decide whether to embrace a monolith or move to a distributed architecture.
References
- OECD Digital Economy — OECD · primary
- National Institute of Standards and Technology — NIST · primary

