Latest Replies

CQRS Starting Page

This page lists learning materials, documents, videos, tips and reference implementations about getting started with Command and Query Responsibility Segregation.

If you came to this page in search of:

  • Lokad.CQRS .NET Open Source Framework and Architecture Guidance for Windows Azure - see Google Project.
  • Article series on CQRS theory, lifehacks from the CQRS production and tips on building scalable systems efficiently - see xLim 4: CQRS in Cloud.

Brief Overview

CQRS as a concept is a way of designing enterprise solutions that are:

  • Almost-infinitely scalable
  • Focused on the business rather than the technology
  • Can grow to handle complex problems without growing development costs
  • Adapt to changing business requirements
  • Efficiently integrate with other software and systems
  • Benefit from the cloud computing resources
  • Inherently handle multiple users

Command-Query Responsibility Segregation is not a silver bullet, but rather an approach that has proven itself to be efficient in solving some of the frustrating problems of delivering enterprise software:

  • Performance bottlenecks and scalability
  • Concurrency conflicts, their resolution and prevention
  • Data staleness
  • Complexity of the design, development and maintenance

CQRS attempts to deal with these problems by reevaluating constraints and assumptions that we’ve been considering to be true and valid for the last X0 years. This allows to rethink core principles and the architecture.

In an oversimplified manner, CQRS separates commands (that change the data) from the queries (that read the data). This simple decision brings along a few changes to the classical architecture with service layers along with some positive side effects and opportunities.

CQRS

If we go deeper, Command-query Responsibility Separation is about development principles, patterns and the guidance to build solution architecture on top of them.

Check out CQRS Roadmap for even bigger (and better) view on this architectural approach, it's benefits and relations with the other important terms from the industry (DDD, Cloud Computing, etc).

10 Reasons to do CQRS Download PDF | Permalink

Below you will find all primary CQRS references I can recommend. It is a part of a larger xLim 4 Body of knowledge (which focuses on CQRS from a viewpoint of practical and efficient development in the .NET world with cloud computing resources available).

You can subscribe to the RSS feed to get all the latest updates.

How To Get Started With CQRS

For a quick and practical introduction into the concepts of Command-Query Segregation Architecture you might want to proceed in the following order:

  1. Start with the materials outlined within the "References - Introduction" section below.
  2. Explore Lokad.CQRS project for Windows Azure (it has samples, tutorials and these references)
  3. Familiarize yourself with "References - Core Materials"
  4. Check out additional projects in the "Reference Implementations" and "Related Stacks"
  5. Read the recommended books
  6. Try applying CQRS in practice
  7. Subscribe to the feeds and join groups from the "Staying Updated" section. Participate and share.

Good luck!

References

Introduction

Addional Core Materials

Scalability and Reliability

If you are interested in problems of really large CQRS applications, check out the section on papers by: Pat Helland. There also is:

Architecture and scalability lessons learned by Amazon while growing from a small book-selling company to what it is now.

Reference Implementations

Related Stack

Related Books

Staying Updated

You can: