Overview¶
The ESDM core schema defines a fixed vocabulary for describing event-sourced domains. Each section in this chapter introduces one of those terms, says what it is in one or two sentences, and then explains it in enough detail that you can use it in conversation and recognize it when it appears in someone else's model.
This chapter doubles as a glossary. If you've landed here from a search, look up the term you came for; the first paragraph of every page is the short definition.
How the Vocabulary Fits Together¶
A model starts with a Domain, which is classified by Subdomains and contains Bounded Contexts. Inside a Bounded Context live the consistency units that own behavior: Aggregates, Dynamic Consistency Boundaries, Process Managers, and Read Models.
Consistency units exchange messages. Commands express intent and target a single consistency unit. Events record what happened and are published by exactly one consistency unit. Queries read from a Read Model.
The remaining vocabulary fills in around those primitives. Value Objects are the typed building blocks that appear inside command and event payloads. Policies, Event Handlers, and Domain Services are different shapes of behavior that react to events or sit beside aggregates. Actors and External Systems describe who or what initiates commands and produces events from outside the domain. Context Mappings describe the relationship between Bounded Contexts.
Where to Go Next¶
If you're new to Event Sourcing or Domain-Driven Design, read this chapter linearly. If you're looking for a specific term, navigate to it directly from the sidebar. If you want to see the schema fields each kind has, the Reference is the canonical place to look.