Skip to main content

3 October 2026

Why we still build a modular monolith first

Microservices solve a scaling problem most businesses don't have yet, and create a coordination problem almost every business feels immediately. We start nearly every platform as a modular monolith — one deployable application with genuinely enforced boundaries inside it.

One deployment, real boundaries

"Monolith" doesn't have to mean tangled. Our modules talk to each other only through a public entry point, never by reaching into another module's internals — and we make that a build-time error, not a code review reminder someone eventually stops enforcing.

Why this beats microservices at day one

  • One deployment pipeline, one database transaction boundary, one place to look when something breaks — instead of distributed tracing before you've found ten paying customers.

  • Refactoring a boundary is a pull request, not a cross-team migration between two independently deployed services.

  • You can still extract a module into its own service later, if scale genuinely demands it — the boundary was always there, just not yet paid for at network cost.

Start with microservices and you're usually paying the coordination tax before you've earned the scaling benefit. Start with a well-bounded monolith and you keep the option open without the upfront cost.

Got a question about this?

If this is the kind of problem you're working through right now, we're happy to talk it through — no pitch required.

Start a project
Why we still build a modular monolith first — Rahnix