Domain Models in practice: DDD, CQRS & Event Sourcing

Domain Models in practice: DDD, CQRS & Event Sourcing

Learn how to model and implement software from a business perspective

If you’re looking for the remote 5-module edition of this workshop, the next edition will be in October 2024.
Tickets and info.

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 in-person three-day 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 one and a half days focus strongly on business strategy, exploratory modelling and strategic design, the last one and a half days dive deep into the implementation of domain models with CQRS and EventSourcing.

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

Day 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
  • Introduction to various flavours of EventStorming
  • Sychronising mental models in the problem space
  • Exploring options to improve the solution space
  • Heuristics to generate value from an EventStorming model.

Day Two

  • 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
  • Hexagonal Architecture – Ports and Adapters in action
  • Tactical DDD Patterns – Exercises in implementing domain models

Day Three

  • Events – Atomic building blocks of your domain
  • Projections – Poly Structured information into various read models
  • 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
  • Implementation using Behaviour-Driven Development.

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 in a classroom and use presentations, collaborative modeling on paper rolls and Pair- and Mob-programming. Every lesson will begin with a theoretical connection to the topic and lead to a collaborative exercise followed by reflection. Discussions and questions are encouraged all the time.

Why should you buy a ticket

These patterns will help you 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, write code with Command Query Responsibility Segregation and learn how Event Sourcing tells a story in domain terms.

Keep your software system design in line with your organization’s needs, improve readability, and strengthen your communication with key stakeholders.


Entry level

Attendees will benefit from coming prepared with knowledge about DDD, CQRS and Event Sourcing, but this is not a prerequisite.

Laptop and language
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.


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

LAST CHANCE! Are you interested in this course? Please purchase your ticket by Monday, 13 May 2024, to help us confirm it as soon as possible.
If we do not reach the minimum number of participants required to activate it by this date, the course will not be confirmed and will be postponed… don’t wait until the last minute to buy your ticket!

The sooner we reach the minimum numbers necessary for its activation, the sooner we can confirm the course and guarantee its execution.
If the course is confirmed, you will see a green tick on this page that says “confirmed/guaranteed to run”, and you will be able to buy tickets even after this date.

About the workshop

Language: The workshop will be held in English.
Time: from 9.30 am to 5.30 pm each day (12-13-14 June 2024).
Venue: Meeet | Mitte, Chausseestrasse, 86, 10115, Berlin, Germany.
Laptop: Check out the F.A.Q. section.
Dress code: Informal.
Included in the price: coffee breaks and lunch with the trainer and the other attendees are also included in this ticket… because networking matters.

How to get to Berlin?

You can get to Berlin by flying into Berlin Brandenburg.

Check out the Meeet | Mitte Berlin Venue Info Page and get it sorted! With plenty of handy information on accommodation, travel options, where to find the training venue, and much more!

Questions? Drop us a line: [email protected]

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.

Vuoi saperne di più sui nostri biglietti?


Under_Cover_LearnerSCONTO 20%

Se ti stai iscrivendo al corso a titolo personale e non hai la Partita IVA, c’è una tariffa speciale per te: uno sconto del 20% sul prezzo corrente del biglietto, che potrai ottenere inserendo il codice Under_Cover_Learner su Eventbrite qui sopra, dove trovi "Enter promo code" (prima di premere il tasto "checkout").

N.B.: Il codice non può essere utilizzato con nessun’altra offerta, ed è valido su tutti i tipi di biglietto.


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 è un Trainer, Speaker e Sviluppatore Software, EventStorming Facilitator.

Organizzatore di KanDDDinsky, conferenza sul tema Domain-Driven Design e sul business software, e cofondatore della comunità DDD tedesca (2013) e di VirtualDDD.com (2019).



Domain-Driven Design, CQRS and Event Sourcing Unlocked: La nostra intervista con Marco Heimeshoff.


Small Talk: una chiacchierata informale con Marco Heimeshoff (YouTubeSpotify).

Meet the Trainer: Marco Heimeshoff presenta il suo workshop Domain Models in Practice: DDD, CQRS and Event Sourcing.

Inside Bounded Contexts: Il talk di Marco Heimeshoff nel corso del nostro remote meetup “An Evening with” (15 aprile 2020).

Chi siamo, in breve :)

Avanscoperta è un ecosistema in espansione fatto di professionisti con una grande passione per l’apprendimento: ci piace imparare cose nuove e scambiare esperienze e idee, esplorando territori finora inesplorati in ambito software, nella sua accezione più ampia possibile.

Selezioniamo con attenzione gli argomenti più rilevanti e i migliori docenti da tutto il mondo, e diamo particolare importanza alle tecniche di insegnamento, preferendo approcci pratici e coinvolgenti.
Unisciti a noi!

Ti interessa questo corso?

Se hai delle domande specifiche, o vuoi ricevere maggiori informazioni, scrivici. Saremo felici di risponderti!


    Vuoi ricevere una volta a settimana i nostri contenuti esclusivi su tecnologia, sviluppo software, business e design?


    Iscriviti alla newsletter!