Minimum price
Suggested price

This book is 100% complete

Completed on 2014-04-27

About the Book

In 2009 I have had the pleasure of spending a 2 day course and many geek beers with Greg Young talking about Domain-Driven Design specifically focussed on Command Query Responsibility Segregation (CQRS).

The example project I created based on these discussions was very well received by the community and regarded a good reference project to explain and learn the patterns that make up CQRS. I decided to add the different blog posts I wrote about the example into a single book so it is easy to find and read.

You can find some reviews on Amazon and of course the Kindle version and a paperback version. The source code that the book walks you through is written in C# and can be found on Github.

If for whatever reason you cannot afford the pay for this book, please e-mail me at mark.nijhof@cre8ivethought.com and I'll get you a free copy!

If you are interested in transactional / hyper personal customer communications then checkout my startup at http://snowflake.ai

About the Author

Mark Nijhof
Mark Nijhof

Mark has worked in the software industry since 2000 during this time he has had many different roles, from Developer, Customer Support, Team Lead till Agile Coach. He currently works as a programmer working with erlang and javascript.

Table of Contents

  • Miscellaneous
    • About
    • The cover
  • CQRS à la Greg Young
    • Queries (reporting)
    • Commands (executing behavior on the domain)
    • Command Handler
    • Internal Events (capturing intent)
    • Domain Behavior
    • Domain Event
    • Internal Domain Event Handler
    • The Domain Repository
    • Domain Repository Contract
    • Data Mining
    • External Events (publishing, letting others know)
    • Eventual Consistency
    • Specifications
    • Some other benefits
    • Finally
  • Domain Events
    • Using domain events for state change
    • Getting the state changes
    • Loading historical domain events
    • The base class
    • Aggregate entities
    • Finally
  • Domain State
  • Event Sourcing
  • Event Versioning
  • Scalability
  • Specifications
    • Black box
    • The BaseTestFixture
    • The BaseTestFixture<TSubjectUnderTest>
    • The PresenterTestFixture<TPresenter>
    • CQRS and Event Sourcing
    • Where is Should?
    • Finally
  • Using conventions with Passive View
    • Passive View
    • The View
    • The Presenter
    • The Magic
    • Reflection
    • The Specifications
  • The Ubiquitous Language is not Ubiquitous
  • Convention over Configuration
    • Configure your Conventions
    • Not just for framework code
  • Trying to make it re-usable
    • Convention over Configuration
    • Why have everything protected?
    • Reflect only once
    • Conventional limits
    • Current state
    • Finally
  • Links
    • Examples

The Leanpub 45-day 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms...

Write and Publish on Leanpub

Authors, publishers and universities use Leanpub to publish amazing in-progress and completed books and courses, just like this one. You can use Leanpub to write, publish and sell your book or course as well! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub