Are you an LLM? You can read better optimized documentation at /guide/core-concepts.md for this page in Markdown format
Core Concepts
This page only standardizes vocabulary and points to authoritative pages. The capability guides own procedures, runtime state machines, and complete examples.
text
command payload
→ CommandMessage envelope
→ aggregate decision
→ domain event payloads in a DomainEventStream
→ sourced aggregate state
→ projections / sagas / other processorsVocabulary Summary
| Term | Stable meaning in Wow | Main artifact |
|---|---|---|
| Bounded context | A named business-language boundary containing aggregate definitions | @BoundedContext |
| Aggregate | One consistency boundary identified by context, aggregate name, tenant, and ID | NamedAggregate, AggregateId |
| Command | An imperative payload requesting a state change | data class/object, @CreateAggregate, @CommandRoute |
| Command message | Runtime envelope carrying the command plus identity, request, version, headers, and routing metadata | CommandMessage<C> |
| Command aggregate root | Domain object that checks invariants and returns events | @AggregateRoot, @OnCommand |
| State aggregate root | State object rebuilt only by sourcing events | @OnSourcing |
| Domain event | Immutable business-fact payload | data class/object; @Event for explicit metadata |
| Domain event envelope | Runtime event plus aggregate, command, sequence, revision, and time metadata | DomainEvent<T> |
| Event stream | Ordered batch of events produced by one aggregate command | DomainEventStream |
| Event store | Authoritative append/load contract for aggregate event streams | EventStore |
| Snapshot | Replaceable derived checkpoint used to accelerate aggregate restoration | SnapshotStore |
| Wait stage | A caller-selected definition of command completion | SENT, PROCESSED, SNAPSHOT, PROJECTED, and others |
| Projection | Event processor that maintains a read model | @ProjectionProcessor, @OnEvent |
| Saga | Event processor that coordinates across aggregates by sending later commands | @StatelessSaga, @OnEvent |
| Event compensation | Observable recording, scheduling, and retry of failed event-processing work | compensation records, RetrySpec |
Key Boundaries
- A command handler decides from current state and returns events; only deterministic, side-effect-free sourcing functions change state.
- Event streams appended to EventStore are authoritative history. Snapshots and projections are rebuildable derived data.
SENT,PROCESSED,SNAPSHOT, and function-scoped downstream stages prove different boundaries and cannot substitute for one another.- A Processor owns ordinary side effects, a Saga sends cross-aggregate commands, and event compensation retries a failed function. A business reverse action remains an explicit domain command.
- Projection completion does not automatically prove query visibility. Execute the real query when the user-visible result is the contract.
Authoritative Reading Paths
| Capability | Authoritative pages |
|---|---|
| Domain boundaries, history, and restoration | Domain Model, Aggregate and Invariants, Event Sourcing, Event Evolution, Snapshots, Aggregate Lifecycle |
| Command definition, invocation, and results | Commands, Define Commands, Send Commands, API Client, Completion Semantics, Failures and Idempotency |
| Command runtime internals | Command Processing Pipeline, Command Wait Runtime, Command Transport and Routing |
| Event processing and cross-aggregate collaboration | Events and Collaboration, Event Processor, Saga, Event Compensation, Event Dispatch Pipeline |
| Read models and queries | Projection, Query, Data Access Control |