Skip to content
kc@kumarChandrachooda.com:~$ cd /blog/archive && read --section="top" 0%
Archive

Every article

Newest first, grouped by year. Search or filter by topic.

  • 556 articles
  • 6 matching
Architecture 30 Dec 2025

Boundaries the Compiler Enforces

Trill's monolith makes every module type internal and gives each one an explicit friend list, so a cross-module reach is not a code-review conversation - it is a build error.

.NET 02 Dec 2025

CQRS Arrived as a Consequence

Because the write model exposes nothing, the read side could not go through the aggregate - so a second POCO maps the same physical table through a second DbContext. CQRS as an outcome rather than a choice.

.NET 01 Dec 2025

When Private Fields Become Column Names

Mapping a fully encapsulated aggregate to relational tables with Property of T of a string - eight tables for one aggregate, eighteen columns, seventeen of them named after private C# fields.

.NET 29 Nov 2025

Asserting on Events When There Are No Getters

Two test files, one estate, one deliberate contrast - and the answer to the question a fully encapsulated aggregate forces on you. Six test methods in 14,559 lines, by design.

.NET 28 Nov 2025

One Public Member, Sixteen Consequences

Postsale's aggregate has ten private fields and exactly one public member. Reservation, in the same estate, has eighteen. Following that difference all the way down to the database.

Architecture 06 Nov 2025

The Compiler Guards the Module Border

ModularMonolith makes every controller internal and teaches MVC to find them anyway - compile-time module isolation from one feature provider, an InternalsVisibleTo chain, and the one place the wall has a hole.