Domain Models in Practice with Marco Heimeshoff

  5 days


Want to build better business software by aligning your code with your culture?

Join DDD expert and business software artist Marco Heimeshoff for this intensive workshop exploring the technical relationship between code, culture and architecture — you'll discover how to model and implement software from a business perspective.

Software that is aligned with the business needs of your customers is hard to build, and it is even harder to optimize for correct domain behaviour, execution performance and scalable information distribution at the same time. Distributing the model with microservices often falls short on the promised benefits and can leave you with a distributed monolith.

Advanced Kubernetes Concepts with Jérôme Petazzoni

The secret to a successful implementation lies in the correct segregation of read and write models from a domain-driven perspective, and connections between them implemented with semantic events. Join Marco Heimeshoff for this virtual workshop as he’ll guide you to build semantic models with a high alignment between business and code.

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.

This course is run virtually over 5 half‑days.

Our virtual courses offer the same expert-led, hands-on experience we've offered since 2013 — accessible from the comfort of your own home (office).

You'll join Marco and participants from around the globe in a virtual classroom where you'll utilise a collaboration tools like Zoom, Slack, and Miro as you discover how to model and implement software from a business POV.

Online Courses for Software Professionals at Skills Matter

Learn how to:

Understand Domain-driven design (DDD) and when it applies

Model the problem domain and explore multiple options of solutions

Align your design with your business needs using CQRS and DDD

Build scalable and decoupled applications with Event Sourcing

About the Author

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 in 2019. Between consulting companies around the globe and his day job in building health care software, you'll find him speaking at conferences about DDD, socio-technical systems and first principles.

Available dates

Dates coming soon

Can't make it on any of these dates?
Our team is happy to discuss other options with you.
Contact us at and mention ref: DDD-MH-02.
Private tuition and large-group discounts are also available. Find out more here.

Who should take this workshop?

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

Regardless of your experience in either Object-Oriented Programming, Functional Programming or other paradigms, all you need is the will and ability to build software with a focus on business behaviour.


To benefit from this DDD, CQRS & Event Sourcing course, you should have some experience working in a professional software development environment.

Some prior knowledge about DDD, CQRS and Event Sourcing is helpful, but this is not a prerequisite.

Workshop Outline

Session One:
  • Domain-driven Design overview: Essential ideas and terminology
  • Why, how and when to apply Domain-driven Design
  • Writing and applying Kustomize overlays
  • Cynefin — Different Levels of complexity in strategic design
  • Making sense of your Domain with various EventStorming flavours
Session Two:
  • Bounded Context Mapping Align your architecture with your organisational structure
  • Modelling with Value Types, Entities and Aggregates
  • Tactical DDD Patterns — Exercices in implementing domain models
  • Hexagonal Architecture — Ports and Adapters in action
  • Handling intent instead of editing dataI
Session Three:
  • Events — Atomic building blocks of your domain
  • Lossless semantic persistence with Event Sourcing
  • Testing with events and commands
  • Decoupling bounded contexts through events
Session Four:
  • CQRS overview: Essential ideas and terminology
  • Implementing read models
  • Projecting streams of events into poly structured information
  • Domain model performance optimization
  • Optional: Application of CQRS & Event Sourcing in front-end development
  • Dealing with scalability and eventual consistency
Session Five:
  • Implementing policies with Sagas
  • Strategies for long lived, evolving event sourced systems
  • Strategies for distributed systems
  • Benefits, risks and socio-technical implications of CQRS and Event Sourcing
  • Optional: Application of CQRS & Event Sourcing in front-end development
  • Local persistent volumes vs highly available persistent

Domain Models in Practice with Marco Heimeshoff
Dates coming soon