Documents
Here are some documents associated with CQRS, they originated as class manual.
- A Stereotypical Architecture – covers what would be a stereotypical architecture and covers some of the problems that tend to exist within it.
- Task Based User Interface – introduces the concept of a Task Based UI
- CQRS – introduces the concept of CQRS
- Events as a Storage Mechanism – using events as a storage mechanism from a conceptual level
- Building an Event Storage – issues of actually building an event storage
- CQRS and Event Sourcing – synergies that exist between CQRS and Event Sourcing
There will be more documents appearing here shortly.

Could you post PDF versions of theses documents ? Not everybody can comfortably read DOCX files.
Thanks in advance.
Will do…
Could you remove the annoying “snapshots” thing, makes it really annoying.
You can do it yourself (there is a link to say never show)
The blog of Pål Fossmo [C# MVP] was pretty useful in terms of .Net CQRS:
http://blog.fossmo.net/?tag=/cqrs
Just wanted to say thanks for all of this info. A co-worker introduced me to this concept and, as I am a bit of a junior developer, the whole thing went over my head. These documents have made everything so much clearer. Thank you.
Regarding the docx files: if you are on windows, you can download a viewer here:
http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyId=3657CE88-7CFA-457A-9AEC-F4F827F20CAC&displaylang=en
Hi,
Thanks for great work and time you have invested on getting all these info explained and available for everyone. I am new to this concept and going through document and video. I am getting really confused with term “aggregate”. For me aggregate is sum groups in SQL
. I am tying to understand what aggregate represent to in CQRS. Can you plz have this term explained bit more detail?
Thanks in advance.
Aggregate is a term from Domain Driven Design. Basically it represents a consistency boundary around a group of objects.
Thanks for last reply, that helped a lot. I was looking all week trying to understand concept and looked some implementations and got one sample created with nCQRS.
I have created a Order domain/aggregate root. Order has Line Items and Payments. Pretty simple order example with line item added, payment added events.
Now when I get AddLineItemCommand, I need to check if this product has enough inventory. Here I got 2 questions that I am not able to get clear answer to
First, where I should have this inventory check- with in Order domain object?
Second, Where it should look for inventory value – Product domain or read model?
I was thinking to have a ProductSold command executed on product domain from Order domain. If this command success, I add line item to order otherwise not. Now question is, is domain execute command on other domain is allowed/good practice?
Let me know if things doesn’t make sense.
Thanks in advance.
Thanks for these docs, I thought they provide a quick read but still got across the salient points, well done.
re: Aggregate – not be confused with a boundary though. A simple example, might be a Person Aggregate that contains/associated with a Contact Object and an Address Object. External clients can only deal with Person not Contact or Address. So it’s aggregating the other objects into a single client facing component – at least that how I like to think of it!
The term is used as Aggregtae in DDD not as in aggregate in UML.
Cheers,
Greg