This is a recording of an online class from a few weeks ago. In this video you will find information on Event Sourcing, CQRS, DDD, and evolving an architecture towards these ideas.
This video is about 6:30:00 so you might want to download it. You can do this by clicking through to viddler.
Also there’re videos about Xebia (can be found amongst examples) – Erik Rozendaal presents on CQRS. Java based. So far the best way I found them is via youtube :-):
Ok, I didn’t finish the video (yet), but I had some questions on the Command Handler. I was looking at SimpleCQRS @ http://github.com/gregoryyoung/m-r/blob/master/SimpleCQRS/CommandHandlers.cs earlier. I know it says, “Simple” but that Command Handler was committing the transaction of a domain object.
The video says not to do it that way. I’m trying to wrap my head around your TransactionalHandler. If your Command Handler only tells the domain object to change it’s state, but doesn’t save it before the method ends, what happens to that state? Do you actually keep your domain objects or their events in memory and use a TransactionHandler to persist them later?
the simple example uses a save.
Generally if you were building a system that needed batching you would start/commit the transaction further up the pipeline.
Fascinating. What happens if the power is pulled during batching? Say 25 out of 50 commands are lost. Is it just a tough luck situation?
then the entire batch would fail as it was not committed yet.
In 23rd minute, there is a mention of a some documentation materials that support this video demonstration – is there a way to get these docs?
I must be mentally deficient because I don’t see a way to save/download the video when i click through to viddler.
Also, is the word document you’re showing publicly available?
See the document section.
You mentioned to NOT use the Register Delegate Handler of the Aggregate Root for the derived classes private Apply() methods when using .NET. What approach should be used? Do you have code for how this works?
see the SimpleCQRS example on github it includes a base class in C# that handles this.
Hi Greg,
I can’t see a download link underneath.
To anybody who’s wondering about the download statement: It only works if you sign up with viddler.
You can download the video from this link: http://dl.dropbox.com/u/108121/CQRS.zip
As a bonus, you can best view the video in Windows media player and increase the playback speed to 1.7. This is the actual speed Greg speaks when you meet him and as a benefit, will save you 2,5 hours 🙂
When – if at all – will Greg’s followup online cqrs thing go online? ( from Friday 18th Feb 2011 )
Merging to reach optimal consistency
Eventual Consistency
Sagas
Building Occasionally Connected systems simply with CQRS
At 1:16 Greg talks about a small piece of code (50-60 lines) that would, by reflection, read the attributes of the commandhandler and then build the commandHandler pipeline (chain of resonsibility). Does anyone know where I can find this. Might be simple to write from scratch but its always nice to have something to start with.
Hi,
How would I do things like lazy loading on aggregate roots? Since all we do is store events, which are not easy to query. E.G. How would I lazily load all user logins to assure uniqueness? It’s not a business rule, I know, but by giving up 3rd normalization level we lose all those niceties from RDBMS too.
Thanks,
Sharas
Why would you need to lazy load aggregate roots from the domain store? Wouldn’t your lazy loading be performed against the reporting store instead?
Can’t seem to find a download link in Viddler 😦