Skip to content
EvergreenConcept

Domain Event

planted Dec 1, 2023 · last tended Jul 19, 2026

A domain event records something meaningful that happened in the domain, as a named past-tense fact. Handlers react to it within the same context, and it can also be published across a Bounded Context boundary so another context learns what occurred without the two sharing a model.

The honest attribution: this is the pattern the community most treats as core tactical DDD, and it is barely in Evans’s 2003 book. Fowler’s 2005 write-up of domain events does not mention DDD; Dahan’s 2009 case for them does not cite Evans. Domain events are the field’s most successful addition to tactical DDD, built on a seam Evans left open, not one of his original building blocks.

They are also not a bundle with event sourcing or CQRS. A domain event is a fact you publish; the other two are a persistence strategy and a read/write split. The three have a one-way dependency and are best kept separate in your head.

Signal: events are named as facts in the past tense (“order placed”, not “place order”), and a subscribing context reacts without reaching into the publisher’s model. Part of Domain-Driven Design.

Sources