m@ksim.pro
Back to all posts
IT 3 min read

Microservices: architectural choice or management decision

Why moving to microservices is not purely a technical decision, and what a founder needs to understand before such a project starts.

The word "microservices" is appearing more and more often in conversations about software architecture. The term describes an approach in which a large system is broken into small, independent services, each performing one specific function and communicating with the others through standard interfaces.

For technical teams this is a continuation of long-running discussions about separation of concerns and deployment independence. For a manager who hears the word from their IT team or consultants, it is often an opaque proposal that sounds convincing but is unclear about what it improves over what already exists. The background is the broader push for fewer monoliths and more discipline in architecture that has been building over the past year.

What the real advantage is

An honest answer: for the right teams in the right conditions, microservice architecture solves real problems.

Team independence. When several teams work on the same system, monolithic architecture creates constant conflict: one team cannot ship changes because another has not finished theirs. Microservices allow teams to work and deploy independently - if the boundary between services is drawn correctly.

Independent scaling. If one component of the system is significantly more loaded than others, it can be scaled separately - without needing to scale the entire application.

Fault isolation. A failing service should not bring down the whole system - if the architecture is implemented carefully.

What usually goes unmentioned

Microservices are not free. They move complexity out of code and into infrastructure - and that infrastructure requires investment and skill.

Network calls instead of function calls. In a monolith, a call between components is a function call. In a microservice architecture it is a network request that can fail, time out, or return an unexpected response. Handling these situations is real engineering work.

Operational complexity. Managing dozens or hundreds of separate services, monitoring them, updating them, debugging requests that pass through several services - is substantially harder than working with a single application. Mature DevOps practices are a prerequisite.

The boundary between services is a hard problem. A boundary drawn incorrectly produces a "distributed monolith" - a system with the disadvantages of both approaches and the benefits of neither.

When it is worth considering

A few signs that a microservices conversation makes sense:

The team is large enough. With a team of two or three developers, the overhead of microservice architecture likely outweighs the benefits. This is a tool for organisations with multiple teams.

There is a specific problem it solves. Not "this is the right way", but "we cannot deploy independently because of this specific reason" or "this particular component needs to scale separately."

The infrastructure is ready. Orchestration, monitoring, logging, automated testing - without this foundation, moving to microservices creates more problems than it solves. The related question of portable application delivery through containerisation is part of the same infrastructure story.

Questions before making the decision

If your team is proposing a move to microservices:

  1. What specific problem does this solve, and how does it manifest today?
  2. Does the team have experience operating distributed systems?
  3. How will the infrastructure burden change, and who will manage it?
  4. What is the migration plan - incremental or a full rewrite?
  5. How will success be measured six months after the transition?

Microservices are not inherently good or bad. They are a decision with real trade-offs that are worth understanding.

Back to all posts
Contact

If this resonated, write to me. I reply personally.

WhatsApp