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

Are you interested in building semantic yet simple software that correctly serves its purpose? Join DDD expert and business software artist Marco Heimeshoff for this intensive three-day workshop exploring the technical relationship between code, culture, and architecture and learn how to model and implement software from a business perspective.

Target audience

If you are an Architect or Developer (junior or senior) with a strong interest in Domain-driven design and modern message-driven architectures then this course is for you!

There are no specific requirements to this workshop, only the will and ability to build software with a focus on business behaviour.
If you are a programmer with one year experience or a senior architect with 20 years in the industry, your specific mindset represents part of the workforce of business software developers and you can learn and practice language agnostic in this workshop.


  • Understand Domain-driven design (DDD) and when it applies
  • Model the problem 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.


In this course, you will learn how to scale your application so that any number of queries can be handled, while also maintaining a behaviour rich domain model that can deal with complex scenarios.
Discover how Event Sourcing enables you to build highly cohesive and decoupled modules and changes the way you write and communicate about tests forever.

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, 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 organisation’s needs, improve readability, and strengthen your communication with key stakeholders.


Day One

  • Domain-driven design overview: Essential patterns and practices
  • Defining a Ubiquitous Language
  • Domain model implementation patterns
  • Bounded Contexts
  • Applying DDD in practice.

Day Two

  • Capturing user intention instead of editing data
  • Implementing business behaviour in semantic code
  • Applying Event Sourcing
  • Testing with Domain Events using Behaviour Driven Development
  • Implementing Aggregates, Entities and Value Objects
  • Decoupling Bounded Contexts
  • Dealing with performance optimisation and snapshots.

Day Three

  • Implementing read models
  • Projecting Event Streams into poly-structured data
  • Dealing with eventual consistency
  • Building distributed systems with Pub/Sub
  • Automating business processes with Sagas
  • Strategies for long lived, evolving Event Sourced systems
  • Discussing benefits, risks and socio-technical implications of CQRS and Event Sourcing.

Expect to get your hands dirty

You will explore a real domain and implement a working model front to back with a mix of lectures, group modelling with event storming, example guided pair programming and exploratory mob-programming.

Why you should buy a ticket

After this workshop you will be able to use the methods of domain-driven design to analyse the business as a whole, split it into manageable contexts alongside the business units and implement a fitting culture, architecture and code to each of them.


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.

You should have a working IDE with a test runner and a language of your liking. Since we will collaborate and pair program, please refrain from obscure languages or dvorak keyboard layouts ;)

Do I need my laptop?
Yes, we will need one laptop per two people. If you come with colleagues, you can join with one laptop per two people.

Will there be any materials to take away?
The slides of the lectures and pictures of our models will be shared between all attendees, as well as the source code that we build as a mob.


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

About the workshop

Language: English.
Time: from 9.30 am to 5.30 pm each day.
Venue: the workshop will take place in Milan, and the venue is still to be confirmed.
Laptop: Check out the FAQ section.
Dress code: Informal.
Maximum number of attendees: 20 participants.
Included in the price: Two coffee breaks and lunch with the trainer and the other attendees are also included in this ticket… because networking matters :-)

Not enough? Drop us a line at info@avanscoperta.it.

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 in the registration field on Eventbrite.

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


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, speaker and 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.

Inside Bounded Contexts: The video of 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!