# Domain Events

> A design pattern that records each significant change in the domain as an event named in the domain's language.

Record: `architecture:domain-events`
Kind: pattern
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Severity: recommended
Scope: domain, bounded context
Canonical: https://banes-lab.com/ontology#architecture-domain-events

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [CQRS](https://banes-lab.com/records/architecture/command-query-responsibility-segregation.md) and before [Integration Events](https://banes-lab.com/records/architecture/integration-events.md).

## Repair

- Refactored by: Rename Event, Emit from Aggregate
- Detected by: CRUD-named domain events
- Violated by: events named after technical operations only
- Measured by: semantic event quality
- Enforced by: domain review

## Requires

- [Domain Model](https://banes-lab.com/records/architecture/domain-model.md)
- [Event Semantics](https://banes-lab.com/records/lexicon/event-semantics.md)

## Reinforces

- [Domain-Driven Design (DDD)](https://banes-lab.com/records/architecture/domain-driven-design.md)
- [Event-Driven Architecture](https://banes-lab.com/records/architecture/event-driven-architecture.md)

## Enables

- [Decoupled Domain Reactions](https://banes-lab.com/records/lexicon/decoupled-domain-reactions.md)

## Conflicts with

- [Infrastructure Events in Domain](https://banes-lab.com/records/lexicon/infrastructure-events-in-domain.md)

## In tension with

- [Event Granularity](https://banes-lab.com/records/lexicon/event-granularity.md)

## Tensions

- [Domain Events / Event Granularity](https://banes-lab.com/records/tension/domain-events-event-granularity.md)

## Severity

- [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)

## Category

- [Event / Messaging / Asynchronous Architecture](https://banes-lab.com/records/architecture-category/event-messaging-asynchronous-architecture.md)

## Required by

- [Event Sourcing](https://banes-lab.com/records/architecture/event-sourcing.md)

## Linked from

- [Execution joins the halves](https://banes-lab.com/software-architecture/principles/execution-joins-the-halves.md)
- [Domain Architecture](https://banes-lab.com/ontology/principles/architecture-category-domain-architecture.md)
- [Event / Messaging / Asynchronous Architecture](https://banes-lab.com/ontology/principles/architecture-category-event-messaging-asynchronous-architecture.md)
- [Event Messaging Async](https://banes-lab.com/ontology/lexicon/lexicon-category-event-messaging-async.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
