Product Domain — Index¶
Status¶
Normative Business Domain Entry Point
Purpose¶
The Product Domain defines the business truth of products independently from:
- merchants
- offers
- prices
- stock
- catalogs
- projections
- runtime systems
- WordPress
- infrastructure
It is the first canonical Business Domain of the Platform.
Domain Position¶
The Product Domain is responsible for:
- Product identity
- Canonical Product Identity
- Product variants
- Product observations
- Product identifiers
- Product evidence
- Product conflicts
- Product consistency
Strict Boundaries¶
The Product Domain MUST NOT contain:
- offers
- pricing logic
- promotions
- stock management
- catalog navigation
- frontend rendering
- SEO logic
- feed parsing
- SQL schema concerns
- WordPress logic
- runtime orchestration
Core Domain Model¶
Invariants (Constitution)¶
- INV-001 Product has exactly one Canonical Product Identity
- INV-002 Identifier is evidence, not identity
- INV-003 Observation must not mutate identity
- INV-004 Variant belongs to exactly one Product
👉 Invariants are non-negotiable domain laws.
Aggregate¶
- Product is the Aggregate Root
- It protects identity, variants, observations and conflicts
Value Objects¶
- ProductId
- CanonicalProductIdentity
- Brand
- ModelName
- Series
- Generation
- Identifier
- IdentifierType
- VariantAttributes
- ProductFamily
- ProductType
- ConfidenceScore
- ConsistencyStatus
Entities¶
- Product
- ProductVariant
- ProductObservation
- ProductIdentifierSet
- ProductEvidence
- ProductConflict
Events¶
- ProductDiscovered
- ProductIdentityEstablished
- ProductIdentifierAttached
- ProductObservationAttached
- ProductVariantDiscovered
- ProductConflictDetected
- ProductConflictResolved
- ProductConsistencyChanged
- ProductCanonicalIdentityChanged
Policies¶
- Identity is unique and stable
- Identifiers are evidence only
- Observations cannot mutate identity
- Variants belong to one Product
- Conflicts must always be explicit
Specifications¶
- Identity completeness checks
- Conflict detection checks
- Variant validation checks
- Consistency evaluation
- Attachment validation rules
Contracts (Execution Layer)¶
- ProductRepository
- ProductIdentityResolver
- ProductFactory
- ProductConsistencyPolicy
- ProductVariantPolicy
- ProductObservationNormalizer
- Repository Contract
- Factory Contract
- Persistence Boundary
Read Layer¶
- Queries (intent): Identity Queries, Consistency Queries, Structure Queries
- Projections (views): Product Summary Projection, Product Detail Projection, Product Conflict Projection
- Domain Services (business operations): ProductIdentityResolutionService, ProductConsistencyService, ProductMergeService, ProductSplitService, ProductConflictResolutionService
- Testing Strategy (validation rules): Unit Tests, Domain Tests, Service Tests
Reading Order (IMPORTANT)¶
- Vision
- Ubiquitous Language
- Invariants
- Aggregate
- Value Objects
- Entities
- Events
- Policies
- Specifications
- Contracts
- Repository Contract
- Factory
- Persistence Boundary
- Queries
- Projections
- Domain Services
- Testing Strategy
Architecture Guarantee¶
The Product Domain guarantees:
- strict separation from infrastructure
- no leakage of SQL / WordPress / feeds
- invariant-first design
- explicit conflict handling
- traceable identity resolution
Architecture Decision¶
Decision: CERTIFIED.
This index is the official entry point of the Product Domain and the reference for all future domains:
- Catalog Domain
- Offer Domain
- Projection Domain
- Pricing Domain
- Identity Domain