Systems reacting to events.
WHAT AN EVENT IS
A record that something happened, in the past tense.
WHAT PUBLISHING ONE DOES
Informs interested parties, without knowing who they are.
WHAT THAT PROVIDES
Decoupling: adding a consumer requires no change to the publisher.
WHAT IT SUITS
Notifying several systems of one occurrence Work that can happen later Integrating systems that change independently
WHAT IT COSTS
Difficult tracing Eventual consistency No single place describing what happens
WHAT TO DEFINE
A schema for every event, versioned.
WHAT TO INCLUDE
What happened, to what, when, and enough detail to act.
WHAT TO BE CAREFUL WITH
Events consumers cannot interpret without calling back Events used as commands Ordering assumptions
WHY ORDERING
Messages can arrive out of order, and consumers must tolerate it.
WHAT TO ENSURE
That processing an event twice is safe.
WHAT TO IMPLEMENT
Handling of messages that repeatedly fail, so they do not block the queue.
WHAT TO DOCUMENT
Every event, and who consumes it.