type Bus interface {
// Publish an event to the bus Publish(Event)
// Subscribe to all events, filter them to the ones containing *all* the keys in filter Subscribe(filter ...string) Listener
}
Bus provides a common channel to emit and listen for Events