Tactical DDD with Process and Design Level Event Storming
This workshop is designed for software engineers and technical teams working on complex business domains who want to move from abstract DDD theory to concrete implementation. You'll learn how to bridge the gap between domain analysis and code, using proven collaborative techniques.
This is a practical workshop where participants learn to apply tactical DDD patterns and discover them the Event Storming technique one of the most effective tools for exploring and modeling domain-driven design (DDD). You will discover how to conduct a successful Event Storming session, identify risks in business processes, and translate workshop outcomes into DDD Building blocks and source code, while adhering to design principles and practices such as Modularity, Communication Patterns, Integration Strategies, Single Point of Failure and Single Point of Truth.
By the end of this course, participants will not only understand how to model rich business domains, but also how to turn these models into scalable, maintainable and testable code using patterns
Learning Objectives
Master Process Level and Design Level Event Storming techniques for domain modeling and analysis.
Understand key tactical Domain-Driven Design (DDD) patterns: Aggregates, Entities, Value Objects, Domain Events, Repositories, Services.
Learn how to write robust, testable code with TDD and a well-structured Test Pyramid.
Key Benefits
Highly interactive and practical format with real-world scenarios.
Deep understanding of how to translate Event Storming outputs into working code.
Hands-on experience designing Aggregates.
Learn to combine DDD patterns into a cohesive architecture.
Build scalable and maintainable applications supported by a solid testing strategy.
Who Should Attend?
Object-oriented developers (Java, C#) working on domain-rich applications.
Software engineers who want to apply DDD tactical patterns in real-world projects.
Development teams aiming to adopt Event Storming, DDD and TDD.
Prerequisites
Familiarity with Strategic DDD concepts.
Strong experience with object-oriented programming.
Basic familiarity with application architecture and agile development practices.
Practicalities
Level: Advanced
Platform: Java / C#
Presenter:
I help teams delivering value faster, understanding business needs and building scalable Architecture and Shift-left Testing Strategy. With a passion and trust.
I have the experience, knowledge, passion and open mindset - perfect skills to deliver value to the customers and the businesses with:
✔ Speed - required to catch the market opportunity
✔ Quality - to retain and scale
Proven by:
✔ Building and maintaining systems at the core for the entire business stability
✔ Significantly reducing the cost of manual tests by implementing Shift-left testing strategy
✔ Iteratively designing and building Architecture open for business expansion yet not over-engineered
Agenda – What You’ll Learn and Build
For developers and architects building complex, domain-centric systems
1. Foundations of Event Storming
- Get hands-on with the essentials
- What domain events are and how they reveal real business behavior
- Event Storming as a fast, visual tool for cross-functional discovery
You'll learn to extract meaningful structure from conversations with business experts and turn ambiguity into clarity.
2. Running Effective Event Storming Sessions
- How to prepare, structure, and facilitate both remote and in-person workshops
- Who to invite and how to get value from every role
- Differences between Process Level and Design Level sessions
You’ll gain the confidence to lead sessions that result in concrete design decisions, not just sticky notes.
3. Applying Tactical Domain-Driven Design (DDD)
- Aggregates, Entities, Value Objects when and how to use them
- Domain Services, Repositories, Domain Events and why they matter
You'll build up a practical vocabulary for modeling business logic in code, not just on whiteboards.
4. Modeling a Real Domain Together
- Explore a realistic domain scenario
- Define meaningful events, commands, and business policies
Practice recognizing complexity early and breaking it down with clear, actionable structure.
5. Connecting Models to Real Architecture
- Introduce Commands, Read Models, Actors, and External Systems
- Make your model executable and scalable
You’ll learn how to move from domain insight to system design that’s ready for development.
6. Designing Aggregates That Scale
- Use Event Storming, Domain Storytelling, and Event Modeling to define Aggregates
- Handle consistency and transactional boundaries in distributed systems
You’ll design Aggregates that survive real-world pressure and stay maintainable over time.
7. Implementing Domain Logic with Confidence
- Data Model vs. Domain Model avoiding the anemic trap
- Applying Command Query Responsibility Separation (CQRS) for clarity and performance
- Aggregates as state machines using Event Sourcing
You’ll leave with repeatable patterns to build expressive, future-proof domain logic.
8. Testing That Drives Design
- Use the Advanced Test Pyramid to balance fast feedback and confidence
- Apply Test-Driven Development (TDD) to domain behavior
- Write tests based on behaviors, not just methods
You’ll write tests that shape your design and protect it from regression and misunderstanding.