Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Layered Architecture: The Real Responsibilities of Presentation, Business, and Data Layers
The real promise of Layered Architecture is the isolation that closed layers provide, but because ProjectReference is transitive by default in .NET, Web silently sees Data through Business; DisableTransitiveProjectReferences moves that rule into the compiler. N-layer vs N-tier, closed and open layers, sinkholes, DB-centric design and the problem with the dependency direction.
Understanding the Monolith: Single-Process, Modular, and Distributed Monoliths
A monolith is not bad code but a single deployment unit; the real problem is the Big Ball of Mud, which forms in one process just as well as in twenty services. The difference between single-process, modular and distributed monoliths, module boundaries guarded by the compiler with internal, how a five-service synchronous chain misses a 99.9% target, and the Monolith First debate, all through Bookstore.