# E-commerce transaction-plane lane decision matrix (2026)

This matrix is for **cart / checkout / inventory / payment handoff / order events** — not analytics lakehouse design.

| Lane | Default AWS path | When to choose alternate | Anti-pattern |
|------|------------------|--------------------------|--------------|
| Edge & catalog read | CloudFront + S3/origin API cache | Origin shield for multi-Region origins | Hitting Aurora on every PDP view |
| Session / cart | DynamoDB (single-table) + TTL | ElastiCache if cart is ephemeral and loss-tolerant | Sticky sessions on EC2 for cart |
| Inventory reservation | DynamoDB conditional writes or Aurora row locks | Aurora when strong relational inventory already exists | Eventually consistent cache as source of truth |
| Checkout orchestration | Step Functions Express or Standard | Sync Lambda only if <3 steps and no compensation | Long sync HTTP chains across 8 services |
| Payments | Tokenized PSP + EventBridge result bus | PCI-scoped account if you touch CHD | Storing PAN in app DB "encrypted" |
| Order events | EventBridge → SQS consumers | SNS fan-out for many independent subscribers | Direct Lambda-to-Lambda for all side effects |

## Opinionated default

**Read path:** CloudFront. **Cart:** DynamoDB. **Checkout:** Step Functions with compensation. **Inventory:** conditional write before payment capture. **Orders:** EventBridge bus with idempotent consumers.

## Capacity worksheet pointer

Use `peak-capacity-worksheet.csv` to size API Gateway RPS, DynamoDB WCU/RCU, and queue depth for a peak hour.
