An observer makes a observation by creating an event and passing it to a callback method of the subscriber.
The observer is also called a message broker because it dispatches the event (ie message) to the subscriber (pubsub).
The observer is used a fundamental pattern of Reactive programming