Send and receive real time events

# Event Service

Publish and subscribe to messages on an event stream. Group messages by topic and asynchronously 
notify listeners of new events occuring in real time. Messages are persisted in case consumers 
disconnect.
