An event bus implements the publisher/subscriber pattern. It can be used to decouple the components of an application so that a component can react to events fired from another component without them having direct dependencies with each other. They only need to know the event bus.
Every subscriber can subscribe to a specific event. A subscriber will be notified when the event it subscribes to is published on the event bus.
A publisher can publish events on the event bus when something happens.