Bounded Context : all models sharing the same domain language
Aggregate:
- DDD's command model representing a domain concept or a relationship between domain concepts
- a consistency boundary around a domain concept, often represented as an object graph (from Mathias)
Aggregate Root: a part of the Aggregate in charge of enforcing the aggregate's consistency and acts as its 'representative'
Entity: a business object representing a domain concept with a stable identity throughout changes over time
Value Object: an immutable object representing a (composite) value that has domain significance
Domain Service: encapsulation of pure domain behaviour that doesn't have its own persisted state e.g calculate tax
Application Service: acts as an adapter between the app's clients and the domain
Domain Event: a data structure representing one domain change
Repository : the object responsible for persisting/loading aggregates
Criteria: it tells the Repository what kind of aggregates to retrieve
Specification: an implementation of a business rule aspect
Eventual Consistency: a process involving multiple aggregates modifies (and persists) one aggregate at the time, but not in an atomic fashion
Unit of Work: basically, an anti pattern
CQRS: have one model (behaviour and data) handling business state changes and at least one other model handling query use cases
Event Sourcing: express business state as a stream of events
Want to contribute? Send me a PR