Skip to content

eBay / Auction — Notes#

Functional#

  • List item (auction / Buy It Now).
  • Bid placement, proxy bidding.
  • Live leaderboard, countdown.
  • Winner determination + payment + shipping.
  • Disputes & buyer/seller protection.

Non-functional#

  • Strict ordering of bids per listing.
  • p99 bid placement < 500 ms.
  • Active listings: tens of millions.

Capacity#

  • 1B+ listings/yr; tens of millions live concurrently.
  • Bid storm at auction close: 1000s bids/s on hot items.

Schema#

  • listings(id, seller, type, start, end, current_high_bid, status)
  • bids(id, listing_id, bidder, amount, max_amount, ts) partition by listing_id
  • payments(...) similar to Amazon

Trade-offs#

  • Single-owner per listing is required for correctness.
  • Eventual consistency on viewer leaderboard is fine.
  • Anti-snipe extension keeps fairness but breaks fixed-time scheduling.

Refs#

  • eBay engineering blog (Cassandra rollouts, auction architecture talks).
  • "Designing Data-Intensive Applications" ch.7 (transactions).
  • ByteByteGo "Design an auction".