a simpler design for EventStore

Not really, it's just PendingEvent and CommittedEvent are just DTO's for back and forth communication with the event store.