Domain Interaction Model¶
Purpose¶
This document defines how Retail Domains collaborate while preserving clear ownership boundaries.
The interaction model is technology-neutral and independent from implementation.
Architectural Principles¶
- Every Business Object has exactly one owning Domain.
- Domains collaborate through Business Services and Business Events.
- Domains SHALL NOT directly manipulate another Domain's internal state.
- Shared databases are NOT part of the reference architecture.
Domain Collaboration¶
graph LR
Customer --> Order
Commerce --> Order
Order --> Inventory
Order --> Fulfillment
Order --> Payment
Pricing --> Commerce
Promotion --> Commerce
Loyalty --> Commerce
Inventory --> Fulfillment
Fulfillment --> Customer
Store --> Inventory
Store --> Fulfillment
Product --> Commerce
Analytics --> Customer
Analytics --> Order
Analytics --> Inventory
Domain Responsibilities¶
| Domain | Owns | Consumes |
|---|---|---|
| Customer | Customer | Orders, Loyalty |
| Commerce | Basket | Product, Pricing, Promotion |
| Order | Order | Customer, Inventory, Payment, Fulfillment |
| Inventory | Inventory, Reservation | Product |
| Fulfillment | Shipment, Return | Order, Inventory |
| Payment | Payment | Order |
| Promotion | Promotion, Voucher | Product |
| Loyalty | Membership, Points | Customer |
| Product | Product, SKU | - |
| Store | Store | Inventory |
| Analytics | KPIs | All domains |
Interaction Patterns¶
Synchronous¶
Used when immediate response is required.
Synchronous Calls
- Check Availability
- Calculate Price
- Search Customer
Asynchronous¶
Used for state propagation.
Asynchronous Events
- OrderCreated
- InventoryReserved
- ShipmentDelivered
- PaymentCaptured
Cross-Domain Rules¶
A Domain MAY expose Business Services.
A Domain SHALL publish Business Events when business state changes.
A consuming Domain SHALL react without assuming implementation details.
BOPIS Domain Flow
References¶
- UCBOK-200 Capability Model
- UCBOK-300 Business Services
- UCBOK-400 Core Business Objects
- UCBOK-700 Business Events