Optivem Journal

Optivem Journal

Hexagonal Architecture

Hexagonal Architecture: The “Microservices First” Mistake

The Distributed Monolith Trap

Valentina Jemuović's avatar
Valentina Jemuović
May 15, 2026
∙ Paid

You went straight into microservices because… well, everyone else was doing it.

“Scalable.”
“Cloud-native.”
“Future-proof.”
“Independent deployments.”

Suddenly there are:

  • 12 services

  • 14 repositories

  • RabbitMQ

  • Kafka

  • Kubernetes

…before you even fully understand the domain.

❌ The Distributed Monolith Trap

You are guessing domain boundaries, so microservice boundaries based on your guesses.

The problem is you discover, during the next months, that you’ve modelled the domain in the wrong way. You discover that your microservices are too tightly coupled, and to implement a simple User Story, you have to coordinate changes across multiple microservices. Changes become expensive.

Immediately jumping to microservices — especially the wrong microservices — is expensive to build and expensive to run.

You can call it “microservices”…

…but it’s just a distributed monolith.

⚠️Fear of the Monolith

Some developers hear “monolith” and imagine:

  • massive bloated classes

  • tangled dependencies

  • painful future migrations

But not every monolith has to become a “big ball of mud.”


🚀 Register now: ATDD – Acceptance Testing Workshop
Get 100 EUR off with code DISCOUNT_100


Hexagonal Architecture Inside the Modules

  • Modular Monolith → all the modules are deployed as a single artifact

  • Microservices → each microservice is deployed independently

This post is for paid subscribers

Already a paid subscriber? Sign in
© 2026 Valentina Jemuović, Optivem · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture