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
  • 334 matching
Architecture 24 Nov 2025

The Feature Flag That Is a Constant

A fully built cross-cutting decorator disables an entire context relationship behind a local variable that is always false - while a sibling module enforces the identical rule for real.

Architecture 19 Nov 2025

A Gentleman's Agreement Across Thirty-Five Projects

ADR 01 chose a verbal ban on illegal project references over an automated architecture test - and the ban held perfectly, in an estate whose database boundary has no enforcement at all.

Architecture 19 Nov 2025

The Only Legal Edge Between Modules

Seven contract projects are the estate's entire cross-module surface - and one misplaced marker interface drags the dispatcher framework into two of them by copy-paste.

Architecture 17 Nov 2025

The Context Map the Compiler Drew

A repeatable twenty-minute method for deriving a real context map from the project graph and the event subscriptions - then diffing it against the one on the wall.

Architecture 16 Nov 2025

Eight Modules, Three Architectures, One Domain

GroupFlights picks a different application architecture per module on purpose - and the module nobody singled out turns out to hold the only real aggregate in the estate.

Architecture 15 Nov 2025

The Repo That Ships Its Own Design Decisions

Most repositories ship code and a README - this one ships four ADRs with a named approver, a context map, a domain message flow and a methodology poster. Part 1 of a series that reads the strategic half of DevMentors' GroupFlights.

Architecture 15 Nov 2025

The Road Out of the Monolith

Which of ModularMonolith's three modules could become a service tomorrow, what blocks the other two, and the hardening bill the sample never pays - a retrospective on the modular monolith as a station, not a destination.

Architecture 14 Nov 2025

Two Modules, Three Months of Drift

Conferences and Speakers disagree on layout, naming, id policy, exception visibility, mapping style and route constraints - plus a 200 that returns nothing and a broker that threw NotImplementedException for four months. The honest ledger.

Architecture 13 Nov 2025

Exception Names Become Error Codes

One middleware turns ConferenceNotFoundException into the wire code conference_not_found via Humanizer - a naming convention promoted to API contract, with a 400-versus-404 tension and Error-level logs it never resolved.

Architecture 13 Nov 2025

Invariants Enforced by Comment

ModularMonolith's entities are public-setter data bags, its one immutability rule is a fixup with a comment, and its hardest domain question is asked in a comment and answered by nothing - a reading of domain modelling by annotation.

Architecture 12 Nov 2025

Two Repositories, One Winner

Conferences registers in-memory and EF repositories for the same interfaces and lets last-registration-wins pick - a live lesson in DI as strategy selector, dead registrations as fossils, and a no-op UpdateAsync nobody deleted.

Architecture 11 Nov 2025

One Flag, Two Failure Modes

A single boolean in appsettings decides whether ModularMonolith's events run inside your HTTP request or on a background pump - and each setting fails differently. Delivery semantics, read honestly from a ternary.

Architecture 11 Nov 2025

The Database Splits Before the App Does

One Postgres database, one schema per module, and entity configurations that are all empty bodies - what ModularMonolith's data layer declares about future service boundaries, and what its migrations quietly gave away.

Architecture 10 Nov 2025

One Rename Broke the Only Contract

The last commit of ModularMonolith renames Name to ConferenceName in the subscriber's copy of its one integration event - and the JSON translator has delivered null into that field ever since. Anatomy of a silent contract break.

Architecture 09 Nov 2025

An Event Bus in Seven Files

ModularMonolith builds its message broker from System.Threading.Channels and one BackgroundService - a textbook Message Channel and Event-Driven Consumer in miniature, with every missing enterprise-integration pattern visible by its absence.

Architecture 09 Nov 2025

Serialize, Deserialize, Deliver

ModularMonolith routes events between modules by class name and converts them by JSON round-trip - a one-line Message Translator that lets modules share contracts without sharing types, at a price the next part collects.

Architecture 08 Nov 2025

Startup Order Is Load-Bearing

The last commit of ModularMonolith moves one line of Startup from first to last - and the whole cross-module event system depends on it. Assembly scanning, throwaway service providers and migrations inside ConfigureServices.

Architecture 07 Nov 2025

Add, Use, Repeat — The Module Recipe

Every module in ModularMonolith plugs in through the same Add/Use extension pair - a recipe small enough to memorise, complete enough to be a mini-framework, and visible even where a module registers nothing at all.

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.

Architecture 06 Nov 2025

Three Modules, One Process

DevMentors' ModularMonolith sample packs three conference-system modules, a mini-framework and one deliberately broken contract into eighty-four C# files - opening a series that reads all of it, defects included.

.NET 04 Nov 2025

The Graveyard of Registered Dependencies

Redis registered in nine services and read in one, discovery stacks in services that never call anyone, an outbox package referenced but never wired, and versions that float by construction - an inventory of everything Pacco wires up and never uses.

.NET 04 Nov 2025

The Price of No Shared Kernel

The retrospective, with the ledger totalled - seven byte-identical MessageBrokers, one AggregateRoot with three meanings, what Convey genuinely optimises, where a Convey.Bootstrap meta-layer should have stood, and what a consumer should copy from this estate.

.NET 03 Nov 2025

A Smell Audit With Prescriptions

A refactoring.guru walk through Pacco's real lines - a flags-enum search that can never match, twin guards, a dead password check, mappers that return null, and an Id that is never assigned - each smell named and each paired with the technique that cures it.

.NET 02 Nov 2025

AI in a Startup

The self-styled uber AI order maker resolves to FirstOrDefault behind an in-source confession, and its reservation heuristic structurally out-bids every earlier booking - the estate's data-science audit, written up as the short honest piece its eleven lines deserve.

.NET 02 Nov 2025

The Saga That Rides a Header

OrderMaker drives a whole order through a Chronicle saga and reports its progress in a single RabbitMQ header - stamped on every publish, forwarded by seven copied MessageBrokers, read back by Operations, and backed by a saga store that forgets everything on restart.