Scale the commerce domains independently
A scalable e-commerce platform is not one large product table plus checkout. Catalog search, price calculation, inventory availability, cart state, order creation, payment, fulfillment, and customer communication have different consistency and scaling needs. Clear ownership lets each area evolve without making every sale depend on one oversized request.
Separate catalog, pricing, stock, cart, and orders
- Catalog and search can use read-optimized indexes while product master data has one source of truth.
- Pricing should produce a reproducible quote with currency, promotions, taxes, and effective time.
- Inventory needs reservation semantics during checkout; a displayed quantity is not a guarantee.
- Order creation should persist the commercial intent before asynchronous fulfillment work begins.
- Payment and fulfillment statuses should be separate from the order lifecycle.
Checkout path with owned responsibilities
Checkout validates a price quote, reserves stock, creates the order, initiates payment, then emits durable work for fulfillment and communication.
Checkout from price quote to fulfillment
Checkout validates a price quote, reserves stock, creates the order, initiates payment, then emits durable work for fulfillment and communication.
Handling a flash-sale order correctly
Architecture shortcuts that oversell inventory
Commerce readiness checklist
- Define source of truth for catalog, price, inventory, order, and payment.
- Use reservation/locking semantics for scarce inventory.
- Persist price snapshots on orders.
- Separate commercial, payment, and fulfillment state machines.
- Load-test checkout concurrency and dependency failures.
