Domain Models in Practice Workshop: DDD, CQRS & Event Sourcing

Domain Models in Practice Workshop: DDD, CQRS & Event Sourcing

Learn how to model and implement software from a business perspective

Domain-Driven Design (DDD) is an approach to software design that focuses on the application’s domain or problem area. It is a technique for aligning the implementation and team topology with the underlying structure of the domain.

This training course will teach you all the fundamentals of DDD. How to collaborate between stakeholders from the business side and software development side to ensure the software meets the needs of the business.
Creating a shared understanding of the domain through various modelling techniques, from Business Model Canvas at the company strategy level via EventStorming and Context Mapping for exploration & design to domain-specific languages in tactical and architectural patterns.

Learn to build a scalable and decoupled system optimized for correct domain behaviour without sacrificing execution performance. The secret to a successful implementation lies in the proper segregation of models and a focus on language.

Join Marco Heimeshoff for this five half-day modules workshop as he’ll guide you to build semantic models with a high alignment between business and code.

Target audience

This workshop is for Architects and Senior Developers with a strong interest in Domain-Driven Design and modern message-driven architectures.

You should know about software product delivery. Experience in software architecture and coding paradigms is welcome but not required.


Software is usually written to solve actual business problems, yet the connection between understanding the domain and designing the code is often poorly understood or dismissed.
We will explore all intersections in the software development process. We will take the entire journey from strategic analysis and domain exploration to system design, architectural blueprints and implementation.

In this course, you will learn how to approach any modelling situation at various flight levels, and you will start building your own toolbelt of heuristics to adapt to any future needs.
Learn about the systemic forces between business strategy, team topologies and software architecture and become an expert in designing and implementing a software system aligned with the domain in a simple, cohesive and decoupled way.

Marco will help you to put your energy where the business value is by letting you partition your team by their expertise and outsource the busy work.


The first three sessions focus strongly on business strategy, exploratory modelling and strategic design. The last two sessions dive deep into implementing domain models with CQRS and EventSourcing.

The agenda will constantly dynamically adjust to the level and expectations of the attendees.

Session One

  • Domain-Driven Design overview: Essential ideas and terminology
  • Understanding your business model and the stakeholder needs
  • Explore various methods for collaborative exploration
  • Why, how and when to apply Domain-Driven Design
  • The forces that shape your solution

Session Two

  • Introduction to various flavours of EventStorming
  • Synchronising mental models in the problem space
  • Exploring options to improve the solution space
  • Heuristics to generate value from an EventStorming model.

Session Three

  • Optimize strategy using Subdomain Mapping
  • Context Mapping – Align your architecture with your organizational structure
  • Discover heuristics to design and decouple bounded contexts
  • Cynefin – Different Levels of complexity in strategic design.

Session Four

  • Hexagonal Architecture – Ports and Adapters in action
  • Tactical DDD Patterns – Exercises in implementing domain models
  • Events – Atomic building blocks of your domain
  • Projections – Poly Structured information into various read models
  • Implementation using Behaviour-Driven Development.

Session Five

  • CQRS overview: Essential ideas and terminology
  • Dealing with scalability, performance and eventual consistency
  • Implementing policies with Sagas
  • Strategies for long-lived, evolving and distributed systems
  • Benefits, risks and socio-technical implications of CQRS and Event Sourcing.

Learning Objectives

  • Understand Domain-Driven Design (DDD) and when it applies
  • Learn to model the domain and explore multiple solutions to choose from
  • Align your design with your business needs using CQRS and DDD
  • Build scalable and decoupled applications with Event Sourcing.

Online Workshop – How does it work

We will meet online in a virtual classroom and use presentation through screen share, collaborative architecture modelling on Miro and Solo- and Mob-programming with screen-shared IDEs. The modules are designed to help you learn in a brain-friendly way. Every module will begin with an interactive lecture and lead to a collaborative exercise. Discussions and questions are encouraged all the time.

The workshop will happen online and in live streaming: the trainer and all other participants will be in a video conference. You’ll be interacting and working together in real-time thanks to a variety of tools you’ll have at your disposal.

The workshop will keep its highly interactive and hands-on spirit despite being online.
This is why we require that all participants keep their webcam on for the whole duration of the workshop: this will enhance the quality of the communication and the workshop as a whole.
You won’t be sitting at your desk watching slides and videos, and you’ll be engaged in real-time activities for the majority of the time… as if we were in a real classroom!

Why should you buy a ticket

These patterns will help you to put your energy where the business value is, by letting you partition your team by their expertise and outsource the busy work.

Drawing from Domain-Driven Design concepts, we’ll write code with Command Query Responsibility Segregation and learn how Event Sourcing tells a story in domain terms.
We’ll also learn how to keep your software system design in line with your organisation’s needs, improve readability, and strengthen your communication with key stakeholders.


Anything to do prior to the workshop (books to read, stuff to install)?
Attendees will benefit from coming prepared with the knowledge about DDD, CQRS and Event Sourcing, but this is not a prerequisite.

In what language will the examples be written?
All code examples will be in C#. No prior experience in C# is required to understand the examples, we will work through the concepts from start to finish.

Is there anything I must do before I buy a ticket for this online workshop?
If you have a computer/tablet, a stable connection (at least 20 Mbps in download and 10 Mbps in upload), earphones, a microphone, and a webcam, then you’re ready to join the workshop.
You’ll get detailed information on what tools we’ll be using and how to get ready a couple of weeks prior to the workshop.
Check out your connection’s speed.
The workshop will keep its highly interactive and hands-on spirit despite being online. This is why we require that all participants keep their webcam on for the whole duration of the workshop: this will enhance the quality of the communication and of the workshop as a whole.


This workshop will be confirmed upon reaching the minimum number of participants. We’ll send an official confirmation to all registered attendees 10-15 days weeks prior to the workshop dates.

Last chance! The last date to buy a ticket for this workshop is Monday 20th February 2023. If we don’t reach the desired minimum number by then, the workshop will not be confirmed and it will be postponed… don’t wait until the day before to buy the tickets!

The sooner we reach the minimum numbers, the sooner the workshop gets confirmed.

About the workshop

Language: English.
Laptop: Yes, check out the FAQ section.
Maximum number of attendees: 20 participants.
Tools and Workstation: The workshop will take place online and in live streaming by using digital tools. You’ll get detailed information on how to join the online workshop, how to get ready for it and how it will work once the workshop will be confirmed.
It is highly recommended that each participant joins the workshop from their own workstation: not sharing the same laptop and/or room with other people will improve the remote experience.

Book it for your company

Contact us using the form at the bottom of this page if you wish to arrange a private custom edition of the Domain Models In Practice workshop.

How our tickets work


Under_Cover_Learner Discount SAVE 20%

If you’re paying the ticket out of your own pocket and you don’t have a VAT number, you can get a 20% discount on any tickets and on any ticket tiers!

How? Just enter the Under_Cover_Learner promotional code on the field "Enter promo code" in the section above (before hitting the button "Checkout").

Please note: this code cannot be used in conjunction with any other offers/discount codes, and it applies to any ticket tier.


I really enjoyed the workshop. Countless aha moments even for people who are into DDD for a long time now!Maxime Sanglan-Charlier

The half-day format is very useful for those who have a busy schedule, and the workshop makes it very quick to understand and practice the basics of DDD.Dario Rigolin

It’s great if you want to see how an Event Sourcing architecture is actually made, starting from the visual modelling with EventStorming to the actual code.Pietro Di Bello

DDD is a huge universe. This workshop is the starship that gives you the possibility to explore it safely.Marcello Santambrogio

This is a great experience. Learning by examples is extremely valuable… and Marco’s code is really full of insights!Franco Lombardo

“What effectiveness to do an introduction of Domain-Driven Design + Cynefin & two types of EventStorming in 4 hours, and in an interactive way. Never seen before!”Xin Yao

Marco’s workshop is one of the best workshops that I have attended in years. The concepts and tools are explained very well. The prototypical implementation was for me the icing on the cake.Melvin Lee

Highly suggested to everyone who wants to practice EventStorming and then understand how to apply insights in CQRS+Event Sourcing pattern.Luca Gentile

Very open to Q&A. Good style in answering questions. So patient!James Ratesetter

[…] I’ve never seen a group enjoy a class so much, both product & engineers.Jamie Allen

Marco Heimeshoff

Marco Heimeshoff is a Trainer, EventStorming Facilitator, Speaker, Software developer from Germany.

He organizes KanDDDinsky, a conference about Domain-Driven Design and the art of business software and co-founded the german DDD community in 2013 and VirtualDDD.com in 2019.


Domain-Driven Design, CQRS and Event Sourcing Unlocked: Our interview with Marco Heimeshoff.


Small Talk: an informal chat with Marco Heimeshoff.

Meet the Trainer: Marco Heimeshoff presents his workshop Domain Models in Practice: DDD, CQRS and Event Sourcing.

Inside Bounded Contexts: Marco Heimeshoff’s talk hosted during our remote meetup “An Evening with” (15th April 2020).

About us

Avanscoperta is a growing community of professionals learning together, exchanging experiences and ideas, exploring uncharted territories.

We carefully select the most relevant topics and the best trainers and thought leaders worldwide with an eye to the most engaging teaching techniques.
Are you ready to learn with us?

Are you interested in this course?

If you have any specific questions, or if you want to receive more information on dates, content or offers about this course, drop us a line. We'll gladly get back to you!


    Get exclusive content from experts in software development, technology, business and design!


    Subscribe to our newsletter!