Some components can register them selfs as being interested in some event. Another component can throw a event and the components that are registered as being interested in that event needs to be notified that the event happened and the relevant data needs to be passed to that component.