The Command Query Responsibility Separation pattern

I just ran across the most impressive technical writeup on CQRS, the Command Query Responsibility Separation design pattern.  It is truly a master class on the subject.  It is actually a whole series of articles on the Microsoft Developer Network, in the patterns and practices area, entitled “CQRS Journey.”  The link is:

http://msdn.microsoft.com/en-us/library/jj554200.aspx

I would recommend downloading a pdf that contains the entire series of articles, which is at:

http://www.microsoft.com/en-us/download/details.aspx?id=34774

Unlike many other discussions of CQRS, this one excels in explaining the concepts behind CQRS and its closely-related cousin, Event Sourcing, in clearly understood terms and with lots of easy-to-understand examples and diagrams.  At the same time, plenty of actual C# code showing actual implementation details is also included. The various contributors to the series really did do a stellar job.

Anyone who wants to understand CQRS should start with this (I would actually recommend reading the first appendix, “Reference 1: CQRS in Context” first because it helps to at least have a high-level understanding of the major concepts of Domain-Driven Design (DDD), and then circle back around to the beginning of the series).

Even if all you knew about it previously was that CQRS was the name of a design pattern, you will come away with a good understanding of the concepts and if you are into advanced .NET application architecture, you will immediately begin thinking of ways that you might incorporate CQRS into your designs (particularly in large/complex systems and/or systems with significant load-handling requirements).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s