Product Events¶
Status¶
Normative Business Domain Specification
Purpose¶
This document defines Product Domain events.
Domain events represent meaningful business changes inside the Product aggregate.
Event Rules¶
A Product Domain event must be emitted only when business state changes.
A Product Domain event must not represent:
- SQL writes;
- cache invalidation;
- frontend rendering;
- logs;
- runtime execution;
- adapter synchronization.
Events¶
ProductDiscovered¶
Emitted when a new Product candidate is discovered.
ProductIdentityEstablished¶
Emitted when Canonical Product Identity is established.
ProductIdentifierAttached¶
Emitted when a new Identifier is attached as evidence.
ProductObservationAttached¶
Emitted when an Observation is attached to a Product.
ProductVariantDiscovered¶
Emitted when a Variant is discovered for a Product.
ProductConflictDetected¶
Emitted when evidences contradict Product identity, identifiers or variants.
ProductConflictResolved¶
Emitted when an explicit resolution clears a conflict.
ProductConsistencyChanged¶
Emitted when Product consistency status changes.
ProductCanonicalIdentityChanged¶
Emitted only when Canonical Product Identity changes.
This event must remain exceptional, explicit and auditable.
Event Invariants¶
Events must be:
- deterministic;
- traceable;
- serializable;
- independent from infrastructure;
- independent from adapters.
Architecture Decision¶
Decision: CERTIFIED.
Product events describe business changes only, never technical side effects.