Event-Driven Architecture is often misused by treating everything as an event, even when a command or document would be more appropriate. 'Passive-Aggressive Events' are events that secretly expect a specific action from a single consumer — they should be explicit commands instead. The post distinguishes three message types: Events (immutable facts broadcast to any interested party), Commands (directed intent expecting execution or rejection), and Documents (state snapshots). Using only events creates hidden sequential coupling, obscures negative/failure scenarios, and makes systems hard to observe. The recommended approach is to use a coordinator (saga/process manager/workflow) that sends explicit commands on the critical path while publishing events for non-critical consumers, making business intent clear and enabling true loose coupling.
3 Comments
Sort: