The former requires a service to know about its upstream services.
The latter allows a service to not know about its upstream services.
The latter is a cleaner separation of concerns and decoupling, because the upstream services just need to be aware of a potential “event” and the original service just needs to know that it has to fire an “event”.