Skip to content
Jul 11 10

Transitioning your DDD “light” application to CQRS and Event Sourcing

by Julien

Une version française de ce billet est disponible ici.

You have been seduced by DDD, CQRS, and Event Sourcing principles and patterns. But how to gently migrate your current application from the “standard” architecture to the more agile and scalable CQRS / Event Sourcing one? Is it even feasible or worth it?

This series of post will try to guide you through this journey. They will show you a simple application that is using a DDD Light architecture, and move it step by step to a fully CQRS / Event Sourced one. Each post will present a fully working sample application that is applying each step refactorings, as well as the related infrastructure code.

Each step will bring its own value. So a bit like agile practices, you can adopt better architecture choices one by one and feel benefits immediately, without necessarily applying everything.

Finally, you do not need to do a big bang development effort on your application at large. You can perform those steps only for some of your domain’s aggregates. You can migrate the aggregates that are bringing the most business value to your application at first, and gradually migrate the other ones over time.

So if everything goes well, here is the plan:

Jul 11 10

Learning about DDD, CQRS, and Event Sourcing

by Julien

The upcoming posts will talk about DDD, CQRS, and Event Sourcing. If you never heard about these patterns (I know, they are more than patterns…), this post is for you.

Lot of material is available on the web talking about them. Most of this material is worth reading, but that constitutes a vast amount of information. Instead of listing everything, I have chosen to pick the place where to start, and then give you what I think constitute the best reference material.

So here we go:

Domain Driven Design:

CQRS:

  • Best place to start: Udi Dahan post on the subject “Clarified CQRS“.
  • Reference: Greg Young is maintaining a good repository of resources with links, videos, etc..: http://cqrsinfo.com

Event Sourcing:

We can also find some interesting summaries of all of this, for example on Rinat Abdullin’s blog.

Obviously, I don’t know every place talking about the subject, so if you think you can fill in the blanks for the reference material, or have better places to start, please share with me, I will update the post accordingly.