Domain map
The bounded contexts in the Acme Inc catalog and how their responsibilities connect across the commerce journey.
The domain map shows where business language changes. A cart, an order, a payment and a shipment are different concepts with different owners, lifecycles and consistency rules.
Core domains
ShoppingShoppingDomain•v1.0.0The Shopping domain owns the customer's path to purchase — building a cart, applying promotions, and checking out. It co...Ownershopping-platformMapView docs, OrderingOrderingDomain•v1.0.0The Ordering domain turns a checked-out cart into a confirmed order. It orchestrates checkout — reserving inventory, aut...Ownerordering-platformMapView docs, PaymentsPaymentsDomain•v1.0.0The Payments domain takes payment for orders and processes refunds. It orchestrates authorization and capture through an...Ownerpayments-platformMapView docs and FulfilmentFulfilmentDomain•v1.0.0The Fulfilment domain gets a confirmed order to the customer. It reserves stock, picks and packs orders in the warehouse...Ownerfulfilment-platformMapView docs form the core purchase path. A failure in any of these domains can block revenue or customer delivery, so their contracts should be reviewed together when changing checkout behavior.
| Domain | Owns | Publishes or handles |
|---|---|---|
| ShoppingShoppingDomain•v1.0.0The Shopping domain owns the customer's path to purchase — building a cart, applying promotions, and checking out. It co...Ownershopping-platformMapView docs | Cart contents, checkout intent and discounts | Checkout CartCheckout CartCommand•v1.0.0Command to check out a shopping cart. Ownershopping-platformSchemaMapView docs, Cart Checked OutCart Checked OutEvent•v1.0.0Published when a customer has checked out their cart. Ownershopping-platformSchemaMapView docs, Calculate DiscountCalculate DiscountCommand•v1.0.0Command to calculate the discount that applies to a cart. Ownershopping-platformSchemaMapView docs |
| OrderingOrderingDomain•v1.0.0The Ordering domain turns a checked-out cart into a confirmed order. It orchestrates checkout — reserving inventory, aut...Ownerordering-platformMapView docs | Checkout orchestration and order state | Reserve InventoryReserve InventoryCommand•v1.0.0Command to reserve stock for the items in a checked-out cart. Ownerordering-platformSchemaMapView docs, Authorize PaymentAuthorize PaymentCommand•v1.0.0Command to authorize payment for the total of a checked-out cart. Ownerordering-platformSchemaMapView docs, Create OrderCreate OrderCommand•v1.0.0Command to create a new order from a checked-out cart. Ownerordering-platformSchemaMapView docs, Order CreatedOrder CreatedEvent•v1.0.0Published when a new order has been created. Ownerordering-platformSchemaMapView docs |
| PaymentsPaymentsDomain•v1.0.0The Payments domain takes payment for orders and processes refunds. It orchestrates authorization and capture through an...Ownerpayments-platformMapView docs | Payment intent, payment outcome and refunds | Payment RequestedPayment RequestedEvent•v1.0.0Published when the Payment Processing System requests a charge from the payment processor. Ownerpayments-platformSchemaMapView docs, Payment SucceededPayment SucceededEvent•v1.0.0Published by Stripe when a charge succeeds. Ownerpayments-platformSchemaMapView docs, Payment FailedPayment FailedEvent•v1.0.0Published by Stripe when a charge fails. Ownerpayments-platformSchemaMapView docs, Refund RequestedRefund RequestedEvent•v1.0.0Published when the Payment Processing System requests a refund from the payment processor. Ownerpayments-platformSchemaMapView docs |
| FulfilmentFulfilmentDomain•v1.0.0The Fulfilment domain gets a confirmed order to the customer. It reserves stock, picks and packs orders in the warehouse...Ownerfulfilment-platformMapView docs | Stock reservation, warehouse packing and shipping | Inventory ReservedInventory ReservedEvent•v1.0.0Published when stock has been successfully reserved for an order. Ownerfulfilment-platformSchemaMapView docs, Order Ready For ShippingOrder Ready For ShippingEvent•v1.0.0Published when a packed order is ready to be handed to a carrier for shipping. Ownerfulfilment-platformSchemaMapView docs, Create ShipmentCreate ShipmentCommand•v1.0.0Command to create a shipment with a carrier for a packed order. Ownerfulfilment-platformSchemaMapView docs |
Supporting domains
CatalogCatalogDomain•v1.0.0The Catalog domain owns everything about products — how they are created, maintained and made discoverable across Acme I...Ownerproduct-platformMapView docs, CustomerCustomerDomain•v1.0.0The Customer domain owns who our customers are — how they register, how their profile is maintained, and how they are au...Ownercustomer-platformMapView docs and Reviews & RatingsReviews & RatingsDomain•v1.0.0The Reviews & Ratings domain owns customer feedback on products — how reviews are submitted, moderated, published and ag...Ownerreviews-platformMapView docs support the buying experience. They are still product-critical, but their change cadence and runtime failure modes are different from checkout orchestration.
Catalog and Search keep product data discoverable. Customer and Identity keep profiles and authentication separate from order state. Reviews and Ratings feed product trust signals back into the storefront.
Integration boundaries
External systems are modelled explicitly so ownership and failure handling are visible. StripeStripeSystem•v1.0.0External payment processor used by Acme Inc to charge cards and issue refunds. It receives payment and refund requests a...Ownerpayments-platformMapView docs, Fraud DetectionFraud DetectionSystem•v1.0.0External provider that screens payments for fraud. It consumes payment requests and returns a pass or fail verdict. Ownerpayments-platformMapView docs and CarrierCarrierSystem•v1.0.0External carrier that delivers shipments to customers. It accepts shipment requests and reports delivery progress back. Ownerfulfilment-platformMapView docs are outside Acme’s control. Internal services should treat these integrations as unreliable boundaries and persist enough state to retry safely.
Change guidance
When a change crosses a domain boundary, update both sides of the contract. For example, changing checkout payloads requires reviewing Cart Checked OutCart Checked OutEvent•v1.0.0Published when a customer has checked out their cart.
Ownershopping-platformSchemaMapView docs, the Checkout SagaCheckout SagaFlow•v1.0.0How the Checkout Orchestrator turns a checked-out cart into an order — reserving inventory, authorizing payment and crea...Ownerordering-platformView flowView docs, and any commands sent by Checkout OrchestratorCheckout OrchestratorService•v1.0.0Runs the checkout saga. Reserves inventory, authorizes payment and creates the order, coordinating the steps that turn a...Publishesreserve-inventory, authorize-payment +1Ownerordering-platformMapRepoView docs.