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

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

"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

"I have been on a two day intensive DDD course with Greg Young. The course was great both from a social and educational perspective. To make sure I don’t forget all of what I’ve learned at the course I will try to write a couple of blog posts to remind myself, and perhaps give others some valuable information. The majority of the course revolved around the Command Query Separation (CQS) architecture promoted by Greg in various presentations. (We now call it command and query responsibility segregation CQRS :) )"

About the Author

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

Audience

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!