A type-safe event store library