Many domain concepts are mutable, meaning their instances can change over time. As a result, they cannot be identified[^1] by their content alone; their *uniqueness* and *sameness* must be based on other criteria. An Entity is defined by its identity, which is established by these criteria rather than its attributes, solving the challenge of maintaining [[Identity over time]]. This is typically achieved using unique identifiers, which can be either natural or surrogate. Natural identifiers are immutable, inherent attributes of the concept, while surrogate identifiers are artificially assigned to ensure uniqueness when natural ones are unavailable or impractical. [[Surrogate identity|Surrogate identities]] are not part of the [[Domain Model]] and should not be exposed to the client. [[Entities should not depend on or reference Factories]]. [[Entities should not depend on or reference Repositories]]. [[Non-Root Entities should not depend on or reference Domain Events]]. [^1]: [[Identity is about defining uniqueness and sameness]]