Aggregates + Event Sourcing distilled  I have been following the
excellent BTW podcast and thinking a lot about CQRS and Event
Sourcing. Inspired by Greg Youngs lecture on Functional
Programming with DDD I have tried to distill what is the minimal
things I need to implement an Aggregate with Event Sourcing in
Java. In this blog post I will focus on the command side of
things. The purpose here is to explain Event Sourcing in a way
that is easy to understand without any unnecessary overhead.  If
you want to get directly to the example code it is available at
GitHub.  A simple domain  To start we need a minimal domain that
is simple to understand, but still interesting enough to be
challanging. Udi Dahan has said many times that CQRS should only
be used in a collaborative domain. Since I really enjoy
developing games a really simple game that came to mind was
rock-paper-scissors.  To keep it really simple the game only has
two commands:    • Player 1: Create game and make first move   •
Player 2: Make move  The