Product Entities¶
Status¶
Normative Business Domain Specification
Purpose¶
This document defines Product Domain entities.
Entities have identity, lifecycle and business continuity inside the Product aggregate.
Product¶
Product is the aggregate root.
Product owns:
- Canonical Product Identity;
- identifiers;
- observations;
- variants;
- conflicts;
- consistency status.
All Product state changes must pass through Product.
ProductVariant¶
ProductVariant represents a version of the same Product.
A ProductVariant has identity inside its parent Product.
A ProductVariant must belong to exactly one Product.
ProductObservation¶
ProductObservation represents product-related information received, extracted or inferred from a source.
An Observation is evidence.
It must never replace Canonical Product Identity directly.
ProductIdentifierSet¶
ProductIdentifierSet groups identifiers attached to a Product or Observation.
It exists to protect identifier coherence.
ProductEvidence¶
ProductEvidence represents traceable information used in identity decisions.
Evidence must remain auditable.
ProductConflict¶
ProductConflict represents a contradiction between evidences.
A conflict must be explicit, traceable and resolvable.
Entity Rules¶
Entities must not depend on:
- SQL;
- WordPress;
- frontend;
- feeds;
- runtime;
- cache;
- HTTP.
Architecture Decision¶
Decision: CERTIFIED.
Product entities are defined as business lifecycle objects inside the Product aggregate.