Redesign EventStore

Serialization/deserialization is in parallel
Writes are processed in order
Duplicates aren't written to Kafka
isLive shouldn't be a var. AtomicBoolean provides the mutability. You would need extra synchronisation if you were to change the isLive variable in multiple threads.