Domain-driven-design Notes

Collection of software development notes related to domain-driven-design.

Domain-Driven Design: Defining and Enforcing Domain Invariants

A practical guide to making Domain-Driven Design work by defining domain invariants and enforcing them through code. Covers why most teams skip this step, how to design interfaces that prevent invalid states, and how to recognize when a codebase is truly following DDD.

software-architectureddd

Hexagonal Architecture for Testability: Imperative Shell, Functional Core

Stop fighting mock-heavy, brittle tests. Hexagonal Architecture separates business logic from databases and IO, and the Imperative Shell, Functional Core pattern makes that boundary explicit. Includes a concrete before-and-after example in Java.

architecturetesting