Redesign EventStore

Serialization/deserialization is in parallel
Writes are processed in order
Duplicates aren't written to Kafka
i think you should do a `if(isLive.getAndSet(false))` block protecting this code. it will stop you calling reader.close() twice if shutdown is called twice.