Session

[Training] Tactical DDD with Process and Design Level Event Storming (2 days)

✅ Why Attend This Training?
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
• Duration: 2 days (16h)
• Platform: Java / C#

📚 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.

Jacek Milewski

IT Trainer | DDD Architect | Developer | Consultant | Speaker | Mentor

Warsaw, Poland

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top