Who Owns a Lookup Value in a Modular Monolith?
A lookup table looks harmless until three modules start depending on it for different reasons. Suppose an underwriting system has a list of countries. Submission intake uses it to normalise addresses.

A lookup table looks harmless until three modules start depending on it for different reasons. Suppose an underwriting system has a list of countries. Submission intake uses it to normalise addresses.

Why Developers Get This Wrong Most engineers learning modular monoliths fall into two traps. The first group collapses boundaries by sharing DbContexts, repositories, and entities across modules. The

Most Development Teams do not wake up one morning with the freedom to design a modular monolith from scratch. They inherit something. A system that grew organically. A codebase that made sense at the time. Controllers, services, repositories, a share...

There’s a point in every system’s life where architecture stops being something you reason about and starts being something you experience. It usually arrives during an incident, when logs are noisy, alerts are firing, and someone asks a deceptively ...

By the time you ask whether a modular monolith should be split, you already know the system well enough that the question feels uncomfortable. If it feels academic, you’re not ready. The moment it becomes emotionally charged, when people disagree str...

If you’ve followed this series so far, you’ve done the hard structural work. You’ve enforced real module boundaries.You’ve organised behaviour into vertical slices.You’ve isolated data with separate DbContexts.You’ve stopped modules from chatting lik...
