We tried to modify the sample application that has been posted by
Allard Buijze on the JTeam weblog in order to get rid of the event
sourcing part (as an exercise for our application, where it is not
We noticed that by implementing Axon's GenericJpaRepository we had to
use JPA annotations in our domain model on the command side, thereby
loosing our much appreciated persistence ignorance. Isn't it much more
preferable to serialize the current state of the aggregate root with
XStream instead and storing it in a table by aggregate root ID? This
way you don't have the burden of event sourcing but may still reap the
benefits of persistence ignorance. Of course, the event handlers still
remain in control of updating the views on the query side.
What do you think?