Event-driven architecture is genuinely useful for: decoupling services that must react to things that happen, processing high-volume data streams, and enabling multiple consumers to react to the same events independently.
The SysSoft IoT pipeline uses Apache Kafka: 5,000 devices generate 15,000+ telemetry records per minute. Multiple consumers process the same event stream independently without coupling.
EDA is not universally beneficial. Introducing Kafka for a system with 100 requests per day adds operational complexity with no meaningful benefit.
The decision criteria: would a synchronous approach cause unacceptable latency or coupling? Do you have multiple independent consumers? Is your event volume high enough that a database queue would bottleneck? If yes to all three, event streaming is probably worth its complexity.
— Dick Bassey | DevDick | 2023