5 exercises — Practice the language used when discussing EDA design decisions: eventual consistency, outbox pattern, and trade-off vocabulary.
0 / 5 completed
1 / 5
A colleague says: "The read model is eventually consistent." What does this mean in an EDA context?
In event-driven systems, the read model is updated asynchronously by processing events — there is a delay between a write (event emitted) and the read model reflecting it. This is eventual consistency: the lag exists but the system converges.
2 / 5
The outbox pattern solves which problem?
The outbox pattern: within the same DB transaction, write your domain changes AND write the event to an 'outbox' table. A separate poller/CDC process reads the outbox and publishes to the broker. This avoids the 'dual-write' reliability problem.
3 / 5
When comparing EDA to request-response, which sentence correctly states an EDA advantage?
Loose coupling is a core EDA benefit — the producer emits an event without knowing who subscribes. New consumers can be added without changing the producer. This contrasts with REST where the client must know the server's endpoint.
4 / 5
Fill in the blank: "A choreography saga gives us more autonomy but makes it harder to ___ the overall flow."
With choreography, the saga logic is distributed across services — there is no single place to inspect the state of a running saga. 'Trace' (or 'track', 'observe') is the vocabulary for understanding what has happened and where a distributed flow currently is.
5 / 5
Which sentence correctly uses tight coupling as a design concern?
Tight coupling is a design smell in distributed systems — when Service A knows too much about Service B's internals (schema, endpoints), any change to B breaks A. EDA addresses this by communicating through events with stable schemas.