Design an online auction platform
Company: Meta
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Design an online auction platform that supports English-style auctions with reserve price, bid increments, proxy bidding, soft-close (extend the auction by X seconds if a bid arrives near the end), and optional buy-it-now. Specify functional APIs (CreateAuction, PlaceBid, GetAuction, SubscribeAuctionEvents, CloseAuction), data model (Users, Items, Auctions, Bids, Watchlists, Payments), and a real-time push mechanism for live bid updates. Discuss consistency for winning-bid determination, idempotency and concurrency control for PlaceBid, prevention of bid sniping and fraud, escrow/payment flow, and auditability. Provide a scalable architecture to handle 500k concurrent auctions, 5M watchers, and p99 bid-to-UI latency under 200 ms. Address sharding/partitioning, ordering of bids across partitions, failure recovery for auction finalization, backfill/replay, security, and key metrics/alerts.
Quick Answer: This question evaluates competencies in designing scalable, low-latency real-time distributed systems, covering data modeling, consistency and concurrency control, ordering and sharding strategies, real-time push/fanout, anti-fraud and escrow/payment flows within the System Design and real-time services domain.