The event-first approach forces an inversion of responsibility; it is a fundamental paradigm shift of how applications are developed.
Event-first analog: I walk into a room, generate an “entered room” event and the light turns on.
Event-command analog: I walk into a room, flip the light switch and the light turns on. This is a command.
In the event-first analogy, I have no knowledge and don’t ask for the lights to be turned on; instead, a sensor detects my presence; it has that responsibility. Then lights detect the event of “presence” and turn on the light, it has that responsibility.
In the event-command analogy, I have the responsibility of knowing how to turn on the light and also making it happen by switching it. This require everyone entering to be taught how to flip the switch. If the switch changes, then everyone need to be retrained.
Whilst the detection require more thinking to facilitate first time (you need the detector to detect, and the light to switch on based on that event), it means that anyone (or anything) coming into the room will trigger the light switch with no activity required on their end. This is also much easier to extend (e.g. turn on light, turn on stereo and change temperature) and easier to maintain as any change is only required to be done in one place.