observer pattern

The observer pattern enables a subscriber to register with and receive notifications from a provider. It is suitable for any scenario that requires push-based notification. The pattern defines a provider (also known as a subject or an observable) and zero, one, or more observers. Observers register with the provider, and whenever a predefined condition, event, or state change occurs, the provider automatically notifies all observers by calling one of their methods. In this method call, the provider can also provide current state information to observers.
This pattern relies on the idea of Push vs Pull. Instead of having an object constantly checking if the state of another has changed, the second object notifies all others when its own state has changed.
In FP this is a super used pattern in the form of Callbacks, Events, and Observers. They are also highly used in libraries like RX.js for Reactive Functional Programming