Base class and interface for EventStore