About coupling, an implementation could send state change events to a message bus and observers could subscribe only the events they care about.
Side-effect is that it will delete all the whens, so only use it if you need it!
About coupling, an implementation could send state change events to a message bus and observers could subscribe only the events they care about.