Project "a CQRS Journey"

For the things we have to learn before we can do them, we learn by doing them. ~Aristotle

Microsoft patterns & practices

The journey is now complete. Get the final deliverables here.


The Microsoft patterns & practices team is a group of engineers (developers, testers, program managers), designers, and technical writers who produce guidance to help the larger community build solutions. With this project, we hope to provide you with a map that will help you to find your own way with the Command and Query Responsibility Segregation (CQRS) and Event Sourcing (ES) patterns and related techniques.


There will be two, closely related, deliverables from this project: the source code for a complete, working reference implementation (an end-to-end sample app) that illustrates the key concepts, patterns, and approaches related to CQRS & ES, and a written guide to accompany the code, provide explanations, context, and references to other relevant material.

The reference implementation will be a conference management system that you will be able to easily deploy and run in your own environment. This will enable you to explore and experiment with a realistic application built following a CQRS-based approach.


  • This project values open, standards-based development
  • We value the great work already available from others and intend to thank existing thought-leaders through attribution
  • This work should happen in the open so everyone is able to follow along
  • We would like to help foster a community of practice and build consensus within the community
  • This project represents a conversation not a dictation
  • We would like to meet the community where it is - using what it’s using
  • The guidance should be based on the best thinking available but also the scenarios customers care about


We hire experts, developers, testers, and writers to augment our team of full-time employees to build these deliverables. We do so using agile/Scrum team practices that operate on fortnightly sprints. At the end of each sprint we hold calls with a group of advisors to demo the new stuff, discuss decision points, and get feedback on our direction. This feedback is crucial to our success.