Contents

The Real ROI of Distributed Architectures

Scalability, Sure… But at What Cost? The Real ROI of Distributed Architectures

/en/roi_distribuited_architecture/img.png

In recent years I’ve seen more and more companies chasing distributed architectures as if they were a badge of modernity: microservices everywhere, queues and streams for everything, three layers of caching, five different databases, and an architecture diagram that looks more like abstract art than an information system.

The problem is that complexity always has a price.
Not just in infrastructure, but in people, processes, incidents, and time-to-market.

The conclusion I’ve reached over the years, moving between “pushed to the limit” monoliths and heavily distributed systems, is this:

Not everything that scales makes sense: simplicity is still a business strategy.

What follows is my way of reasoning about the ROI of distributed architectures: when it makes sense to complicate your life, when it doesn’t, and how to measure whether we’re making a smart choice or just following the latest tech trend.


Why companies over-engineer

Before we talk about ROI, we need to be honest about one thing:
a lot of the complexity we see around doesn’t come from real scalability needs.

The (very human) reasons behind complexity

Companies (and people) over-engineer due to a combination of factors:

  • Technical vanity
    It’s much sexier to say “we have 40 microservices on Kubernetes” than “we have a boring but solid monolith that prints money”.

  • Architectural FOMO
    “If we don’t have Kafka / microservices / CQRS / event sourcing, we’re behind.”
    The fear of being perceived as “old” tech-wise drives the adoption of tools and patterns that aren’t really needed.

  • Defensive overdesign
    “Let’s make everything distributed from day one so we’re ready to scale.”
    Translation: let’s optimize now for a problem we might never have, and pay the cost immediately.

  • Vendor influence
    Cloud providers or partners have every interest in pushing more complex solutions = more services = more revenue.

  • Organizational silos
    As teams grow and specialize, each group tends to bring in its own tool, its own database, its own pattern. The result: a technology zoo that’s hard to govern.

The missing question

I almost never hear the one question that should sit above all the others:

“This extra complexity – how much does it really make us earn or save?”

Until we tie an architectural choice to a measurable economic effect, we’re doing philosophy, not engineering in service of the business.


How to evaluate architectural ROI

Talking about ROI for an architecture might sound abstract, but it isn’t.
The core idea is simple:

Every extra piece of complexity must have a return: in revenue, in avoided cost, or in reduced risk.

Step 1 – Ask the right questions

Every time someone proposes to “go distributed”, split, queue-ify or stream everything, I mentally go through this:

  1. What concrete problem are we solving?

    • Performance?
    • Reliability?
    • Time-to-market for multiple teams?
    • Compliance / data separation?
  2. What happens if we do NOT make this change?

    • Do we lose customers?
    • Do we slow down development?
    • Does the risk of downtime grow?
    • Or… does nothing particularly dramatic happen?
  3. How much will it cost us to maintain this over the next 3 years?

    • In infrastructure.
    • In team training.
    • In cognitive complexity.
    • In incidents that are harder to debug.

If I can’t sensibly answer these questions, my default strategy is: don’t touch it, or change the bare minimum.

Step 2 – Think in scenarios, not features

Saying “microservices = more scalability” isn’t enough.
We need to reason in terms of scenarios:

  • If traffic doubles in 6 months, what does this architecture let me do that I can’t do today?
  • If I want to launch a new product, does this design let me go live in 2 weeks instead of 2 months?
  • If one piece goes down, how much do I lose, for how long, and with what impact on revenue?

Is the architecture an enabler or a brake for real business scenarios?
That’s where ROI shows up.


Useful metrics and concrete KPIs

To avoid staying in the abstract, when I evaluate how healthy (or excessive) a distributed architecture is, I look at a mix of business and technical metrics.

Business KPIs tied to architecture

  • Total cost of ownership for core functionality
    How much does it cost us, all included (infra + people), to keep running the part of the system that generates 80% of revenue?

  • Average lead time to deliver a new feature
    How many steps, how many teams, how many pipelines are involved in shipping a “simple” change?
    If a small user flow change touches 7 microservices, we’re probably overpaying for our decomposition.

  • Onboarding cost for a new developer
    How many weeks does it take before a new person can contribute without banging their head against system complexity?

  • Average economic impact of an incident
    Distributed architecture promises resilience. But if every incident costs more because it’s harder to analyze, we’ve got a problem.

Technical metrics that aren’t just nerd stats

  • MTTR (Mean Time To Recovery)
    How long does it take to understand what’s happening and restore service?
    A good distributed architecture should improve MTTR, not worsen it.

  • Number of critical boundaries
    How many network hops, services, and datastores sit on the path of a single user request? The more hops, the more you’re playing complexity roulette.

  • Organizational coupling
    How many squads do you need to align to make a change?
    If “distributed” means “more inter-team dependencies”, something’s off.

The key idea is:

A technical metric has value only if you can connect it to an effect on the P&L or on business risk.


When complexity pays… and when it doesn’t

Now to the hard choices: when does it make sense to accept higher architectural complexity?

When complexity has positive ROI

Usually it’s worth complicating things when:

  • You’re already living a real “scaling story”, not just a hypothetical one
    Traffic, customer base, or data volume are growing measurably, and the bottleneck is real, not just feared.

  • You have multiple teams that must work in parallel on the same domain
    Splitting the monolith can make a lot of sense when organizational complexity has already exploded.
    In that case, the ROI is in development speed, not just performance.

  • Resilience has a direct economic value
    If 10 minutes of downtime cost you hundreds of thousands of euros, investing in more sophisticated distributed architectures and failover can be absolutely rational.

  • You have the maturity (people + process) to sustain it
    Monitoring, SRE practices, incident management, a culture of end-to-end ownership.
    Distributed architecture without these is just a more expensive way to break things.

When complexity does NOT pay

On the other hand, I often see cases where complexity is pure debt disguised as “modern”:

  • Early-stage startups with modest traffic that start directly with 30 microservices and 5 databases “because this way we’re ready”.
    Result: they’re not ready for customers, they’re ready for incidents.

  • SMEs that don’t have specialized teams, but adopt fully distributed stacks as if they had a dedicated SRE department.

  • Products that change direction frequently, but have such a rigid and fragmented architecture that every pivot becomes a nightmare.

In all these cases, a simpler – even “imperfect” – solution would often have a better ROI in the medium term.


Conclusion: simplicity as a business strategy

In the end, for me the question is not “monolith vs microservices”, “distributed vs centralized”, or “Kafka yes or no”.

The real question is:

“Does this architectural decision make our business more robust, faster, or more profitable… or just more complicated?”

Simplicity is not the opposite of scalability.
It’s a different kind of strategic intelligence:

  • delaying complexity until it is strictly necessary;
  • introducing it only where it’s clearly paid for (by the market, not by technical ego);
  • accepting that some “boring” solutions are actually perfectly adequate.

In other words:
not everything that scales makes sense.
But everything that makes sense, sooner or later, has to prove its value outside of architecture slides.

And there, the ROI of distributed architectures becomes very clear.