Stop Joining Tables In Your “Modular” Monolith

CodeOpinion (Derek Comartin)
CodeOpinion (Derek Comartin)May 27, 2026

Why It Matters

Hidden data-layer coupling erodes modular architecture, increasing maintenance risk and hampering evolution; aligning data models to business functions reduces cross-module dependencies and preserves agility.

Summary

The video warns that joining tables across modules in a modular monolith hides dangerous coupling at the database level. While a simple SQL join between sales and warehouse seems convenient, it creates implicit dependencies that undermine module boundaries and make future schema changes risky. Using APIs can expose and manage those dependencies better, but still couples services in different ways and adds migration overhead. The speaker argues teams should instead question the actual business requirement—e.g., use an Available-to-Promise function rather than raw inventory counts—to keep responsibilities and data ownership aligned within module boundaries.

Original Description

Modular monoliths are all the rage, but is yours actually just a "Big Ball of Mud" with a clean coat of paint? In this video, I break down the hidden trap of joining tables across module boundaries and why database-level coupling is just as dangerous as tight coupling in your code.
We’ll explore the "Simple Join" trap, why internal APIs provide better evolvability, and a real-world example to show how aligning with business functions can eliminate the need for cross-boundary queries entirely.
🔗 Kurrent
💥 Join this channel to get access to a private Discord Server and any source code in my videos.
🔥 Join via Patreon
✔️ Join via YouTube
00:00 - The Illusion of the Modular Monolith
00:43 - The "Simple" Join: A Hidden Coupling Trap
02:09 - Why Database-Level Coupling is Dangerous
03:01 - Solving Coupling with Internal APIs
04:19 - Requirements vs. Reality: Available to Promise (ATP)
06:38 - Architectural Trade-offs & Evolvability
08:36 - Final Thoughts: Is your Monolith a "Big Ball of Mud"?

Comments

Want to join the conversation?

Loading comments...