We, the patterns & practices team, are considering doing a guidance project on implementing systems using the Command & Query Responsibility Segregation (CQRS) approach. This is not going to be a framework or reusable components. We are positioning this project as a learning journey and envision providing an experience report that describes building a sample app (reference implementation) to showcase various CQRS and Event Sourcing (ES) concepts & techniques. We will include explanations of various trade-offs and architectural decisions made along the way. Of course, we will publish the reference implementation/sample app to complement the written guidance.
We are not into chasing elusive silver bullets. Our ultimate goal is produce practical guidance for real world development problems.
We are interested in your perspectives, your needs and your suggestions on what you’d like us to focus on.
We’ve already started forming an advisory board, which is an essential component for projects in p&p. It includes both Microsoft employees and members from the community at large: Greg Young, Udi Dahan, Kelly Sommers, Adam Dymitruk, Bill Wilder, Clemens Vasters, Chris Tavares, Mark Seemann, Lars Wilhelmsen, Rinat Abdullin, Scott Cate, Christopher Bennage, Daniel Cazzulino, Dylan Smith, Eugenio Pace, Glenn Block, Bob Brumfield, Matias Woloski, Scott Densmore, Shawn Hinsey, Shy Cohen, Tim Shakarian, Bruno Terkaly, Ricardo Villalobos.
Today we open the first round of public consultation with a questionnaire to help us direct our exploration. Depending on your feedback and related priorities we will produce an initial backlog which we will also invite the community to comment/vote on.
If you care about CQRS, ES, Domain-Driven Design and good design practices, please take part in this consultation process. Both real world experiences and the need to be successful with CQRS in the near future are valuable perspectives.