Winning the game with CQRS/event sourcing and BDD

Yes !! I did it !!!

I have been making a few attempts to combine BDD with CQRS/event sourcing, since they seem to make a perfect fit.

After mailing to the DDD/CQRS newsgroup for a few times, I finally managed to make something presentable... this is the BDD part for the domain :

And this is the resulting output after running the console runner

This is the context, notice how setting up the interpreter usually only takes a single line (i.e. register an event, execute a command, or check something)

And this is the implementation of the domain class

And it's domain handler

As wel as a view updater (in reality this view store would be queried be a winform or webform directly)

Please do note that the current Event Store and Aggregate store are not persisted; IRL you would have to persist the event store (forward write-only), and probably some snapshots from your aggregate root as well (maybe using a bigtable); this should be easy to add, I might do this in a later phase....

You can find the full sourcecode in this zip: (76,94 kb)

Update !!

I uploaded the sourcecode to github :

I also added (currently synchronous) a node.js -like implementation...

Bookmark and Share