System Design Problem

Design a Stock Exchange Matching Engine

Commonly Asked By:NasdaqNYSERobinhoodCoinbaseGoldman Sachs

  • Order types: Limit orders, market orders, stop orders, stop-limit orders, IOC, FOK, GTC
  • Order matching: Match buy and sell orders by price-time priority (FIFO within same price)
  • Order book: Maintain real-time order book per instrument (bids and asks sorted by price)
  • Trade execution: Execute matched orders; generate trade records with unique trade IDs
  • Order lifecycle: New, acknowledged, partially filled, filled, cancelled, expired, rejected
  • Market data: Publish real-time L1 (BBO), L2 (depth), L3 (full order book)
  • Order modification: Amend quantity (reduce only) or price (loses time priority on price change)
  • Cancel: Cancel resting orders; cancel-on-disconnect for algo traders
  • Opening/closing auctions: Batch matching at market open and close (call auction)
  • Pre-trade risk checks: Position limits, order rate limits, fat-finger checks
Loading...

Critical Path Latency Budget

StepLatency
FIX parse + normalize~1-2 μs
Risk checks (shared memory)~0.5 μs
Sequencer (assign + NVMe WAL write)~1-2 μs
Ring buffer publish + consume~0.1 μs
Matching engine (lookup + match)~0.5-1 μs
Execution report publish~0.5-1 μs
FIX response serialize + send~1-2 μs
Total~5-9 μs

Order-to-Trade Flow

Loading...