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 SELLcancelOrder(orderId)getOrderBook(tradingPair, depth)— top N bid/ask levelsgetTrades(tradingPair, limit)— recent matched tradesgetUserOrders(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 …