jargon

Comparison

Domain eventvsEvent-carried state transfer

Domain event

the model recorded that the order was placed as a thing that happened, and three unrelated reactions followed.

An object naming something significant that has occurred in the domain, in the past tense, carrying what happened rather than what to do next. It decouples the thing that changed from everything that must react, and it is how aggregates coordinate without one reaching into another. Making them part of the model — rather than an integration mechanism bolted on later — is what distinguishes this from simply publishing messages.

Full entry →

Event-carried state transfer

the event carries the whole customer record rather than just an id, so the consumer never has to call back and ask.

Publishing enough state inside each event that consumers can maintain their own copy without querying the producer. It removes the runtime coupling of a callback and makes replay meaningful, because the history contains the values and not just the pointers. The trade is size, staleness semantics and versioning: every consumer is now parsing your schema, so the payload is a contract in a way that an id was not.

Full entry →

Related comparisons