Skip to content

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.