Glossary
Aggregate
An aggregate is treated as a single unit for the purpose of persistence, and references are only allowed to the Aggregate Root
Aggregate Root
The Aggregate Root is the parent Entity to all other Entities and Value Objects within the Aggregate.
Anti Corruption Layer
An Anti-Corruption Layer is a method to isolate two systems, allowing systems to be integrated without knowledge of each other.
Bounded Context
A Bounded Context can be considered as a miniature application, containing it’s own Domain, own code and peristsence mechanisms.
Context Map
A Context Map provides a clearly defined relationship between Bounded Contexts and the interactions between their Domain Models
Domain
The Domain is a sphere of influence, knowledge or activity. Within each Domain there will be a Domain Model
Domain Expert
Domain Experts, or DEs, are those within the business that be considered to be the most knowledgable about the business model. The DE should be closely involved with the development teams, and considered a part of the application development team
Domain Service
A Domain Service provides functionality that does not sit comfortably on a single Entity or Value Object
Entity
An Entity is an object primarily defined by it’s identity. This identity may be the classic integer type ID, a Guid, or some other attribute unique to each Entity
Persistence
Persistence is a generic term for a method of retrieving and storing data.
Persistence Ignorance
The principle of Peristsence Ignorance (or PI) is that our applications and Domain should be unaware of how, or even if, their Aggregates are being persisted.
Repository
A Repository behaves like a collection of an Aggregate Root, and acts as a facade between your Domain and your Persistence mechanism.
Service
Service is a fairly generic name for a piece of code that does something, in DDD this should be contrasted with a Domain Service, which provides specific functionality to the Domain, particularly across and between Entities, Value Objects and other Services
Ubiquitous Language
The Ubiquitous Language is a negotiated language, between the development teams and the business.
User
Users are the people who will be using our applications on a day-to-day basis. This should be contrasted with a Domain Expert who may not be using the systems, but has intimate knowledge of the Domain and business.
Value Object
A Value Object is an object that can be characterised by it’s lack of any identity – a Value Object (or VO) can be compared to another by it’s attributes.