https://softwarepatternslexicon.com/f-sharp/behavioral-patterns-in-f/observer-pattern/
Observer Pattern in F#: Implementing Event-Driven Programming with IObservable and IObserver