Design a Simplified Crypto Exchange Order Book

Problem

Design the OOP model for a crypto exchange order book supporting limit and market orders.

Requirements

  • placeOrder(userId, type, side, price, quantity) — LIMIT or MARKET order; BUY or SELL
  • cancelOrder(orderId)
  • getOrderBook(tradingPair, depth) — top N bid/ask levels
  • getTrades(tradingPair, limit) — recent matched trades
  • getUserOrders(userId) — open and filled orders

Key classes

Order, OrderBook, MatchingEngine, Trade, PriceLevel, UserPortfolio

Performance requirements

  • Order placement and matching < 1ms
  • Order book snapshot < 5ms

Design decisions

  • BUY side: max-heap (or sorted map descending by price)
  • SELL side: min-heap (or sorted map ascending)
  • Each price level is a FIFO queue (time priority)

Extension

Add stop-loss orders that trigger when price crosses a threshold.

added …
LeaderboardSalaryAccount