We provide virtual course about Designing Robust Architectures with DDD and Event Storming in english. The workshop helps you connect domain analysis with hands-on implementation, using Tactical DDD Building blocks and Advanced Test Pyramid.
Course description:
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.
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
Course outline:
For hands-on product engineers, architects, and analysts working on complex domain-driven systems
Module 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
Module 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
Module 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
Module 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
Module 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
Module 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
Module 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
Module 8 - Bounded Contexts and Implementation:
• Architecture decisions within contexts
• Mapping contexts to team structures
• Translate strategic design into implementation and organizational structure
Module 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
Module 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
Module 11 - Designing Aggregates:
• Use Event Storming outcome to model Aggregates
• Model Aggregates that enforce business rules and evolve with change
Module 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
Module 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
Target audience:
• 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
Level:
• Advanced level
Language:
• The course is given in english
Course material:
The course fee includes course documentation