Designing Robust Architectures with DDD and Event Storming
This intensive 4-day workshop is aimed at architects and developers who want to level up their ability to analyze complex business domains, design modular architectures, and translate that knowledge into maintainable, testable code.
You’ll learn how to use Event Storming at all levels (Big Picture, Process, and Design), how to define Bounded Contexts, and how to implement tactical DDD patterns like Aggregates, Entities, Value Objects, and Domain Events.
The workshop helps you connect domain analysis with hands-on implementation, using Tactical DDD Building blocks and Advanced Test Pyramid.
Learning Objectives
Learn how to facilitate Event Storming sessions at all levels (Big Picture, Process, Design).
Apply strategic DDD: Domains, Ubiquitous Language.
Define Bounded Contexts and Context Maps.
Design and implement tactical DDD: Aggregates, Entities, Value Objects, Domain Events.
Use Event Storming as a shared modeling and decision-making tool for cross-functional teams.
Key Benefits
Hands-on, workshop-style learning from sticky notes to running code.
Master the full Event Storming lifecycle and its practical use in DDD.
Learn to break systems into bounded, autonomous components.
Explore the organizational and architectural trade-offs of communication strategies.
Get confident writing domain-centric tests with the Advanced Test Pyramid.
Who Should Attend?
Experienced developers, software architects.
Product teams adopting Domain-Driven Design to build scalable and adaptive systems.
Experts involved in projects that require deep domain understanding, strategic alignment, and architectural resilience.
Prerequisites
Understanding of object-oriented programming.
Understanding of domain modeling and software architecture principles.
Practicalities
Level: Advanced
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 hands-on product engineers, architects, and analysts working on complex domain-driven systems
1. Introduction to Event Storming
• What is a domain event and how it differs from technical events
• The mindset and principles of Event Storming
• Types of Event Storming sessions
Understand how to model domain complexity collaboratively and visually.
2. Organizing Event Storming Sessions
• What tools and setup are required
• How to facilitate online and offline sessions
• Choosing participants and leading the group
Gain confidence to organize and facilitate productive domain discovery sessions.
3. Big Picture Event Storming
• When and how to apply Big Picture sessions
• Differences between exploring existing systems vs. new ideas
Learn to align the organization around a shared understanding of the system landscape.
4. Strategic Domain-Driven Design
• Ubiquitous Language and shared understanding
• Discovering Domains and Foundations for defining Bounded Contexts
Use strategic DDD tools to draw boundaries and structure the system.
5. Exploring a Realistic Domain
• Introduce a realistic business domain
• Use notation and visualization techniques
• Explore chaos, discover chronology and causality
Practice converting messy domains into structured maps.
6. Identifying Bounded Contexts
• Spotting language boundaries
• Creating and interpreting Context Maps
• Common pitfalls and edge cases
You’ll define clear, robust context boundaries for code and teams.
7. Cross-Domain Communication Strategies
• Choosing between integration styles
• Understanding the trade-offs (coupling, latency, complexity)
Learn to design communication patterns that fit your business needs.
8. Bounded Contexts and Implementation
• Architecture decisions within contexts
• Mapping contexts to team structures
Translate strategic design into implementation and organizational structure.
9. Tactical DDD in Practice
• Aggregates, Entities, Value Objects
• Domain Services, Repositories, Domain Events
Learn to apply DDD building blocks that support real business logic.
10. Deep Dive: Process & Design Level Event Storming
• Define Commands and Read Models
• Identify Actors, Services, and Invariants
• Discover Business Policies
Model systems that are consistent, expressive, and implementation-ready.
11. Designing Aggregates
• Use Event Storming outcome to model Aggregates
Model Aggregates that enforce business rules and evolve with change.
12. Implementing Aggregates
• Applying CQRS in practice
• Translating sticky notes into code
• Aggregates as state machines
• Using Event Sourcing to persist domain state
Build code that reflects the business language, not the database.
13. Testing Domain Models
• Apply the Advanced Test Pyramid to domain-driven systems
• Use Tests to validate behavior
Write tests that guide and verify your design, not just your functions.