Aller au contenu

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.