Falsehoods Software Developers Believe About Event-Driven Systems

2024-06-30

When building a distributed system, a common design pattern is to follow the event-driven approach. Event-driven systems can range from a simple in-memory queue to a serverless AWS Lambda with a preceding queue, or even connected Kafka clusters. when reviewing code implementing an even driven architecture, I see common mistakes that cause toil or even operational incidents once deployed to production.

Here are unordered misconceptions developers have about event-driven architectures. Use this as a checklist for design and code review.

Message ordering

Message duplication

Idempotency

Load management

Producer contract

Consumer contract

Dead letter queues

Recovery

Architecture

[list to be updated]