0345 4506120

CQRS, Domain Events, Event Sourcing and how to apply DDD

Greg Young's CQRS, Domain Events, Event Sourcing and how to apply DDD (delivered by Russ Miles)

About the Expert

Russ Miles

Russ Miles

Russ Miles is CEO of ChaosIQ.io where he and his team build commercial and open source (ChaosToolkit.org) products and provide services to companies applying Chaos Engineering to build confidence in their Cloud Native, Microservice-based systems on Pivotal Cloud Foundry, Kubernetes and more.

About the Author

Greg Young

Greg Young

Greg Young coined the term "CQRS" (Command Query Responsibility Segregation) and it was instantly picked up by the community who have elaborated upon it ever since.

The largest problem many run into with Domain Driven Design is in getting the abstract concepts implemented in a concrete way. Many of the stereotypical architectures people use actually make it impossible to apply DDD.

This CQRS course will help you avoid this. You will learn all about Command Query Responsibility Separation (CQRS), Domain Events, Event Sourcing and how to effectively apply DDD within an organisation.


If you are an Architect or Senior Developer with a strong interest in Domain Driven Design and in particular how to use Command Query Responsibility Separation (CQRS), Domain Events and Event Sourcing, then Greg Young's course is for you!



Bring your own hardware

To participate in this CQRS course, you are required to bring your own laptop, so you can develop with your own tools and languages, rather than something you are not familiar with.

Course Content

Day 1

  • Domain Driven Design Review

Day 2

  • Introduction/Outline
  • User intention and why it is important 
    • Exercise: Building a task based UI
  • Command and Query Separation
  • Introduction to events as a storage mechanism
    • Exercise: Creating an event storage system
  • Performance optimizations, snapshots
  • Creation of an aggregate root that tracks its own state
  • Conext Specifications to capture intent
  • How events change testing strategies

Day 3

  • The Read System
  • Partitionability of work, developer specialization, and outsourcing
  • Eventual Consistency
  • Organizational Sagas and the Ubiquitous Integration Language
  • Versioning of the event log over long periods of time
  • Pub/Sub and building disconnected systems



To get the most out of this course, you are advised to read Eric Evans' book on Tackling Complexity in the Heart of Software

Privacy Notice

In order to provide you with the service requested we will need to retain and use your contact information in accordance with our Privacy Notice. If you choose to provide us with this information you explicitly consent to us using the information as necessary to provide the request service to you. If you do not agree please do not proceed to request the service from us.

Marketing Permissions

Would you like to receive our newsletter and other information on products and services which we think will be of interest to you by email. We will always treat your information with care and in accordance with our Privacy Notice. You are free to withdraw this permission at any time.


Our Customers Include