When not to use microservices

Microservices · lesson 15 of 33 · 3 min read

Spot the cases where a modular monolith wins and splitting early makes everything harder.

Open this lesson in the learning hub

Key points

  • Small team, one product, a domain you are still learning? Stay monolithic. You will move the boundaries three times before they are right.
  • Microservices need platform muscle: a pipeline per service, automated deploys, central logs, tracing, on-call. Without it, chaos.
  • The worst outcome is a distributed monolith: services that must be released together. All the latency, none of the independence.
  • Splitting the shared database is the hard half. If services still read tables owned by another service, nothing was split.
  • Good reasons to split: different scaling profiles, different release cadence, team autonomy, hard isolation for compliance or blast radius.
  • Best path for most teams: modular monolith first, honest module boundaries, then extract the one module that hurts.

Split a service when a boundary is proven and painful, never because it is fashionable.

This is a reading copy. The full lesson — with the visual explainer, the interactive lab and a Run button for the code — lives in the Microservices course, and every lesson in it is listed on the Microservices contents page.