I've been looking into Event Sourcing for a new project with J Oliver's EventStore and mongo as the persistence layer but have come across a few questions:
Previous to trying event sourcing my domain persisted to a db and I've been using Udi's domain events pattern which has worked really well for me with NHibernate managing the unit of work. However I've ended up with one unit of work that can affect more than one aggregate eg.
I "checkout" my shopping basket aggregate which raises an event for which a handler responds by creating an invoice aggregate which in turn raises an event (this is an example only)
In this case I have one unit of work that alters two aggregate roots - in the event store I could get the events raised added to two different event streams but they would not be persisted in an atomic way (the first could succeed and second fail). So what do people do to aviod this from happening?
On the github home page it suggests that you can use a fluent interface to configure the EventStore, however when I download the source, compile it and look in the example the wireup class doesn't seem to be available - is it in a different branch? (I have master)
What is the recommended way to handle the IStoreEvents impl? As a singleton similar to Nhibernates session factory?