Topic-based event programming concentrates on the types of events that are passed between software components without skewing toward either side of the emitter-handler relation. Topic-based event programming is a generalization of previous styles. Event-driven applications written with that style allow components (for example, classes, objects, and functions) to both emit events and/or register to event types, completely ignoring the other side of the emitter-handler relation.
In other words, handlers can be registered to event types, even if there is no emitter that would emit them, and emitters can emit events even if there is no one subscribed to receive them. In this style of event-driven programming, events are first-class ...