Posts
654
Comments
545
Trackbacks
1
cqrs for dummies
cqrs for dummies – an interlude – Greg Young’s sample app

Greg has posted that he has created a sample app for CQRS, which you can find here. It is indeed called “SimplestPossibleThing” and it’s pretty accurate, but it is good code to review.  I especially like “InfrastructureCrap.DontBotherReadingItsNotImportant.cs", I mean, come on, what else would you look at first. Seriously though, it’s important to see a simple implementation of all of the main components.  Check it out.

posted @ Tuesday, August 31, 2010 1:33 PM | Feedback (0)
cqrs for dummies – an interlude – notes from Greg Young’s USA Weekend Class

Greg Young has been doing a number of EventBrite Live Meeting type sessions over the last month. I haven’t been able to attend any of them, but Jeff Doolittle posted a summary (if you can call a 17-page PDF a summary) of the latest one. Good stuff, check it out.

posted @ Thursday, August 26, 2010 12:24 PM | Feedback (2)
cqrs for dummies – 3 of n – the event store layer

Series link here. As a reminder of what I’m talking about, here’s the picture from Mark: What I’m going to be talking about is section #3 from Mark’s picture, and in particular, I’m going to be going over a number of concepts including: Domain events Write-only event store, or “Accountants don’t use erasers” Compensating actions Automatic audit log Replaying Events Data mining Event Sourcing The general nature of Domain Events ...

posted @ Tuesday, August 10, 2010 8:46 PM | Feedback (0)
cqrs for dummies – an interlude – one way of implementing queries and commands

This may sound cynical, though I don’t mean it that way (for once), but there’s more than one way to skin a cat, and so I try to avoid advocating strict ways of writing certain types of code.  Having said that, I’ve found that writing queries and commands with a certain basic pattern has worked all right for me, at least recently. Queries can be implemented using the following interfaces: public interface IQuery<TReturnValue>     {         TReturnValue Execute();     }     public interface IQuery<TReturnValue, TParameterDefinition>...

posted @ Monday, July 19, 2010 9:30 PM | Feedback (0)
cqrs for dummies – an interlude – DDD Exchange 2010

Event Store Layer post is coming (really, it is), but in the interim, you can find a lot of good presentations from the DDD Exchange 2010 in London (which obviously covers DDD in general, as well as CQRS) from Eric Evans, Udi Dahan, Greg Young, Ian Cooper and Gojko Adzic. Check it out here.  Good stuff.  For those of you not inclined to watching online presentations, you can find good summaries here, here, here and here.

posted @ Tuesday, June 15, 2010 7:30 PM | Feedback (0)
cqrs for dummies – an interlude – more links of interest

There are more than enough link aggregators out there, so I doubt I will do this on a regular basis, but I’ve come across a couple of other links that I find interesting. Rinat Abdullin – a nice series about how to start with CQRS and what it means. Agr.CQRS – a framework and sample implementation of CQRS. Ncqrs – another framework with sample implementations of CQRS. DDDD Review – a review list talking about Greg’s ever impending book on the subject. Inversion of Control Freak – another link aggregate of DDDD and CQRS links.

posted @ Sunday, May 09, 2010 10:27 PM | Feedback (0)
cqrs for dummies – an interlude – other interesting blog series

I’ve come across a couple of posters who have blogged regularly about CQRS and find their stuff pretty interesting. Pal Fossmo has written a number of posts and has this great image of how CQRS might work (included with permission): His post category on CQRS can be found here. Bjarte Naess has been posting quite a bit after taking one of Greg’s two day courses, and you can find his stuff here. Check them out, good stuff.

posted @ Sunday, April 18, 2010 10:35 PM | Feedback (0)
cqrs for dummies – 2.1 of n – command layer notifications

And so of course, I managed to leave out one important consideration. You are on the UI and you, e.g., click a button that creates a command.  What happens now? I didn’t really talk about either the command bus or the command handler, because to a certain extent they are implementation details.  You could actually have, e.g. NServiceBus and use a bus, or you could connect through regular method calls, or you could do a host of different things.  When it comes to the command handler, you could have some generic handler class or, better I think, have...

posted @ Monday, March 15, 2010 11:38 PM | Feedback (2)
cqrs for dummies – 2 of n – the command layer

Series link here. Update: added an 'addendum' here.  As a reminder of what I’m talking about, here’s the picture from Mark: What I’m going to be talking about is section #2 from Mark’s picture, and in particular, I’m going to be going over a number of concepts including: The differences and advantages of using Commands over DTOs Validation of commands, and how/when this can occur outside of the domain Why domain objects shouldn’t have getters and setters and how commands help here Why domain objects should never...

posted @ Sunday, March 14, 2010 10:34 PM | Feedback (3)
cqrs for dummies – an interlude – is cqrs the ‘shiny new thing’?

The next substantive post on the command layer should be up this week, but thought I would comment on this. For various reasons, a question has arisen of whether cqrs is some shiny new thing.  define what that means however you wish. The short answer is, yes, but no. As Papa Greg has mentioned/stated before, cqrs is ‘only’ separating your codebase in such a way that commands and queries use different services (or classes if like me you are allergic to services).  Which is absolutely correct.  Typically, however, mention of cqrs tends to involve a lot more...

posted @ Tuesday, March 09, 2010 7:20 PM | Feedback (0)
Full cqrs for dummies Archive