Amazon — Notes
Functional
- Browse catalog, search, recommendations.
- Cart, checkout, multiple addresses & payment methods.
- Order placement → inventory hold → payment → fulfillment.
- Returns, RMAs, refunds.
- Reviews, ratings, Q&A.
- Marketplace (3rd-party sellers), FBA.
Non-functional
- p99 product page < 300 ms.
- 99.99% checkout availability.
- Read:Write 100:1 for catalog; 10:1 for cart.
- Strong consistency for orders + payments; eventual OK for catalog and views.
Capacity (rough)
- 200+ M items, 1B+ users, 100k+ orders/min peak (Prime Day).
- Catalog reads: millions/s.
- Catalog storage: TB; with images many PB.
Schema highlights
products(id, title, price, attrs, seller_id, category)
inventory(sku, warehouse, on_hand, reserved)
carts(user_id, [items])
orders(id, user_id, items[], status, totals, payment_id)
payments(id, order_id, status, amount, provider_ref, idempotency_key)
Trade-offs
- Microservices (1000s) enable team autonomy but require strong contracts.
- Saga over 2PC for order flow.
- Multi-warehouse inventory for latency / cost; complicates allocation.
- Read replicas for catalog, but check stock at commit.
Refs
- Amazon engineering talks (DynamoDB origin, SOA papers), Werner Vogels blog.
- "Building Mission-Critical Financial Services Apps" re:Invent.
- ByteByteGo "Design Amazon", Alex Xu Vol 2.