Greg Young's CQRS, Domain Events, Event Sourcing and how to apply DDD

Topics covered at CQRS-01-03
View Schedule & Book More dates available

Next up:

Would you like to learn all about system building and architectures with Domain Driven Design? Join this course on CQRS, Domain Events, Event Sourcing and how to apply DDD with Greg Young!

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.

Learn how to:

  • Apply DDD
  • Use CQRS
  • Understand Domain Events
  • Apply Event Sourcing

What the community says

"One of the best courses I have been on. Lots of real examples and very engaging for an intense course on a big subject. Great to hear how ideas have evolved and how dependent on different scenarios, architectures may be appropriate."

Julian Walls on 11th Jun 2015

"Learned a whole lot. The anecdotes and experiences really help in grasping the topics."

December '14 course delegate on 16th Dec 2014

"Very enjoyable - I'd do it again."

Neil Robbins on 10th May 2010

"Superb course - good practical examples backed up with solid theoretical knowledge. - Finn is Development Manager for Fundraising Innovations Ltd"

Finn Newick, Fundraising Innovations Ltd on 9th May 2010

"have had the pleasure of spending a 2 day course and many geek beers with Greg Young talking about Domain-Driven Design specifically focussed on the Command and Query Responsibility Segregation (CQRS) pattern. Greg has taken Domain-Driven Design from how Eric Evans describes it in his book and has adapted mostly the technical implementation of it. Command Query Separation (CQS) was originally thought of by Bertrand Meyer and is applied at object level Bertrand defines CQS as: every method should either be a command that performs an action, or a query that returns data to the caller, but not both. In other words, asking a question should not change the answer."

Mark Nijhof on 12th Nov 2009

About the Author

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.

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


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!


There are no prerequisites to attend Greg's course.


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

Bring your own hardware

To benefit most from this CQRS course, please bring your own laptop, so you can develop with your own tools and languages, rather than something you are not familiar with.

If you are not able to bring in your own laptop, please contact the Skills Matter team on +44 207 1839040 or email info@skillsmatter.com