Untitled Lesson
Skill Matrix
UNLOCK NODES BY LEARNING NEW TAGS.
What is a "distributed monolith," and why is it considered worse than either a well-structured monolith or genuine microservices?
💻 Code Challenge | +75 XP
Design a well-bounded monolithic module structure (orders, inventory, users) where each module only accesses others through an explicit public interface, positioning it for easier future extraction into services.
A team split their monolith into "microservices" but now every deployment requires deploying three services together, in a specific order, or the system breaks. Reorder the steps to diagnose the underlying problem.
Task: Reorder the blocks in logical sequence to solve the problem.
A.D.A. Interface
Adaptive Didactic Assistant

Pascual Vila
Frontend Instructor // Code Syllabus
The Error //
Splitting a system into microservices by default, without a specific operational pain point driving the decision
// Risky default: splitting because "microservices are modern"
// Better: split when a REAL pain point demands it
// e.g. genuinely divergent scaling needs, or independent team deploy cadenceThe Solution //
Premature service boundaries, drawn before the domain and its actual scaling/deployment needs are well understood, are expensive to get wrong and difficult to redraw later — and they introduce real complexity (network calls, distributed transactions) without a corresponding benefit if there was no genuine pain point requiring the split. Start as a well-structured monolith and extract services when specific, real needs demand it.
The Error //
Extracting services that remain tightly, synchronously coupled to each other (a distributed monolith)
// Distributed monolith: tightly coupled despite being "separate"
// Service A --sync--> Service B --sync--> Service C
// All three must deploy together — no real independence gainedThe Solution //
If Service A must synchronously call Service B which must synchronously call Service C, and all three must be deployed together for the system to function, the split has added network-call overhead and operational complexity without achieving any real independence — the services can't actually scale, deploy, or fail independently.