Use for-loop instead of while+iterator
Use .class.getName() instead of hardcoded strings in default properties
Inner event metadata classes must be public
Ignore metadata and eventid when serializing to json

This is redundant information. Each topic will only contain events with
matching metadata, since events are sent to specific topics based on
their event id.
Provide interface for service instances

Java needs a little help distinguishing the overloads (Object) and
(String...)