Domain Events Vocabulary
5 exercises — master the vocabulary of domain events: fat vs thin events, schema evolution constraints, naming conventions, choreography vs orchestration, and eventual consistency management.
0 / 5 completed
Domain events vocabulary quick reference
- Domain event — fat event with full business context; past-tense PascalCase (OrderPlaced)
- Notification / thin event — carries only ID + type; consumers fetch full data separately
- Schema evolution — managing event schema changes without breaking existing consumers
- Consumer contract — what a specific consumer depends on from an event's schema
- Choreography — implicit coordination; each service reacts to events independently
- Orchestration — explicit coordination via a central process manager
- Eventual consistency — services converge to the same state after a window of time
- Idempotent consumer — safe to process the same event more than once
1 / 5
What is the difference between a domain event, a message, and a notification in event-driven architecture?
These three terms are often confused — understanding the distinction is essential for EDA architecture discussions.
Domain Event — carries full business context:
Message — the transport envelope; can carry a domain event, command, or query.
Trade-offs:
• Fat event (domain event) — consumers are decoupled; no callback needed; risk of too much data in schema
• Thin event (notification) — less bandwidth; but requires consumers to make additional API calls (chattier)
Key vocabulary:
• Fat event — an event carrying complete domain data
• Thin event / skinny event — an event carrying only an ID (notification style)
• Event-carried state transfer — consumers maintain their own copy of state from fat events
Domain Event — carries full business context:
{
"type": "OrderShipped",
"orderId": "ORD-9921",
"customerId": "C-5512",
"items": [{"sku": "SKU-01", "qty": 2}],
"shippedAt": "2025-07-01T10:30Z",
"carrier": "FedEx",
"trackingNumber": "FX-78834"
}
Notification (thin event) — carries only an identifier:
{"type": "OrderShipped", "orderId": "ORD-9921"}
Consumers must call back to the source service to get the full data.Message — the transport envelope; can carry a domain event, command, or query.
Trade-offs:
• Fat event (domain event) — consumers are decoupled; no callback needed; risk of too much data in schema
• Thin event (notification) — less bandwidth; but requires consumers to make additional API calls (chattier)
Key vocabulary:
• Fat event — an event carrying complete domain data
• Thin event / skinny event — an event carrying only an ID (notification style)
• Event-carried state transfer — consumers maintain their own copy of state from fat events