A three-part series on modelling business domains before writing code. Event Storming surfaces the events, commands, and policies that drive the business. Domain-Driven Design turns that understanding into bounded contexts, subdomains, and aggregates. Together they provide the structural foundation for systems that can explain themselves.
Domain modelling is the work of making a business process clear enough to build. It creates shared understanding before specification turns assumptions into software. Defects discovered after release can cost up to 30 times more to fix than defects caught during design and architecture, making this knowledge critical for engineering leaders.
Event Storming is a workshop-based technique for exploring complex domains through business events. It surfaces the workflows, decisions, and consequences that drive the system, using nothing more than sticky notes and collective insight.
Domain-Driven Design turns the output of Event Storming into bounded contexts, subdomains, and domains. These structural concepts define ownership, responsibility, and communication boundaries across the system.