An Entity is an object fundamentally defined not by its attributes, but by a thread of continuity and identity.
A Value Object is an object that describes some characteristic or attribute but carries no concept of identity.
A cluster of associated objects that are treated as a unit for the purpose of data changes. A set of consistency rules applies within the Aggregate's boundaries.
External references are restricted to one member of the Aggregate, designated as the root.
Is an entity with a global identity
External references to an aggregate root should be restricted to it's ID (No object references)
Can hand references to the internal Entities to other objects (outside the aggregate), but they can only use them transiently (within a single method or block).
Only methods of this object may be called from outside
A Service is a collection of functions with no encapsulated state.
An operation that computes and returns a result without observable side effects.
Computes and returns a result
Has no side effects
A language structured around the domain model and used by all team members to connect all the activities of the team with the software.
The delimited applicability of a particular model. BOUNDING CONTEXTS gives team members a clear and shared understanding of what has to be consistent and what can develop independently.
An event in the domain that may lead to state change of a domain object. Also events that the domain experts want to track or be notified of.