CQRS and Event Sourcing Resources

At work, an initiative to implement some CQRS style architecture for some of our projects subsystems has begun. We were looking at ways to horizontally scale our system and a colleague suggested that we look at CQRS and Event Sourcing. Over the last month, we have researched the topic, spiked out the implementation, and started migrating some parts of our bounded contexts to make use of the architecture.

Below is a list of links to white papers, blog posts, sample applications, and other information on CQRS and Event Sourcing. There are not listed in any particular order:

I may add links to this post from time to time as I come across useful ones.


Book Review: Domain-Driven Design by Eric Evans

Domain-Driven Design
Domain-Driven Design

I just finished reading Domain-Driven Design by Eric Evans. Overall, it is a great book. The complex topic of domain-driven design is tackled and explained exceptionally well. In addition, the companion web site supplements the text very well by allowing quick access to definitions and provides a community for discussion regarding the text and topic. The only draw back I encountered in the text was feeling that some fundamental topic discussions were a bit long winded. This may have been just because of my experience in the software engineering and architecture arena. However, that drawback is minimal as the discussions restated important concepts clearly and reinforced them.

There are several notable characteristics in this book. The very first thing that comes to mind when I am asked why I found this book helpful is the way the author covered the topic from both an academic point of view and then distilled the key concepts using practical tried and true design patterns which have been documented in various notable texts by accomplished technologists. The domain-driven design approach marries itself well to agile development processes that emphasize iterative development practices. Evans made the association between the approach and the processes although there appeared to be a bias towards extreme programming.

In the end, I would definitely recommend the book to anyone who is working on projects where domain driven design principles or is interested in learning both the academic and pragmatic techniques and concepts in this area of software development.

Entities, Value Objects, Aggregates and Roots

I have recently been reading up on Domain Driven Design again. After rereading the section on the Domain Model definition in Martin Fowler’s Patterns of Enterprise Application Architecture book and sifting through Eric Evan’s Domain-Driven Design: Tackling Complexity in the Heart of Software book, I also came across a really nice blog post by Jimmy Bogard which does a great job summerizing Entities, Value Objects, Aggregates and Roots. Anyway, I figured I would share these quick resources that I used to refresh my memory on domain driven design concepts.