Follow this blog

Software engineering, design, and psychology

Why You Don’t Want Complete Team Autonomy | Microservice Architecture — Ep. 18

Microservice team autonomy means freedom to choose technologies: languages, frameworks, databases, infrastructure.

Imagine splitting a large monolith into 10-20 microservices. Each team picks a stack different from the original system — and different from each other.

This leads to:

  • new folder structures
  • new code style conventions
  • new linting rules
  • new test harnesses
  • new database schemas
  • new CI/CD pipelines
  • new infrastructure definitions
  • new monitoring and alerting setups

And this can turn very problematic:

  • Most of these decisions require thorough analysis with long discussions — even within a single team.
  • Engineers face a steep learning curve as the whole tech stack differs from the one they are used to.
  • API boundaries become harder to reason about when teams mix REST, GraphQL, RPC, and custom protocols.
  • Infrastructure complexity explodes — the teams might start spending more time on configuration than on writing new features!

Microservices aim to enable independent teams and faster delivery — but not every decision benefits from decentralization.

What do you think might be a possible solution here? Share your thoughts in the comments!

I’m writing a full series on microservice architecture — from base definitions to hands-on topics like testing, deployment, and observability.
Follow or connect if you want to continue the series, or read them on my blog: https://mishurovsky.com/blog/tags/microservices-event-driven-architecture/

Follow this blog
Send
Share