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:
I would recommend downloading a pdf that contains the entire series of articles, which is at:
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).