Integration Patterns V is out now! Event-Driven architecture is pretty well-defined in textbooks (and the definition is complex..trust me) but what people care about when they talk about anything "event-driven" is almost always:
1. Loosely coupled and independently-deployable systems,
2. which communicate without direct RPC calls,
3. and fast, responsive, up-to-date data processing + data liberation.
As much as I love Kafka it's often hard to get EDA right...so I've been writing (and just finished) a blog series about five tools to make EDA more reliable, and how you can implement these tools more easily with a workflow engine:
1.
The SAGA Pattern, in which you undo previous actions in a multi-step process when a later step fails.
2.
The Outbox Pattern, which lets you reliably update two separate systems without a transaction or 2PC
3.
Queuing, which lets you offload heavy processing to improve reliability and latency
4.
Retries and Dead-Letter Queues, which make sure your business processes complete even when things go wrong
5.
Callbacks and External Events, for when your process needs to wait for external input.
Technically I did
try to make them "marketing," but I am an engineer at heart (and we hate marketing fluff) so hopefully there's some useful content in there.