System Design: Real-Time English Auction Platform
Goal
Design an online auction platform that supports English-style auctions with:
-
Reserve price
-
Bid increments
-
Proxy bidding (max auto-bid)
-
Soft close (extend by X seconds when a bid arrives near the end)
-
Optional Buy-It-Now
Provide:
-
Functional APIs: CreateAuction, PlaceBid, GetAuction, SubscribeAuctionEvents, CloseAuction.
-
Data model: Users, Items, Auctions, Bids, Watchlists, Payments.
-
Real-time push mechanism for live bid updates.
-
Consistency model for determining the winning bid; idempotency and concurrency control for PlaceBid.
-
Anti-sniping (soft-close) and fraud prevention measures.
-
Escrow/payment flow and auditability.
-
A scalable architecture for 500k concurrent auctions, 5M watchers, and p99 bid-to-UI latency < 200 ms.
-
Sharding/partitioning strategy, ordering of bids across partitions, failure recovery for auction finalization, backfill/replay, security, and key metrics/alerts.
Assume auctions are public, with authenticated users, and a single logical region for writes (multi-AZ) with read replicas/edges for fanout. Buy-It-Now is available until reserve is met or the first qualifying bid is placed (configurable).