System Design Interview

Wrap Up

Wrap up 1 min readLesson 4 of 4

After reading this chapter, you may come to the conclusion that an ideal deployment model for a big exchange is to put everything on a single gigantic server or even one single process. Indeed, this is exactly how some exchanges are designed!

With the recent development of the cryptocurrency industry, many crypto exchanges use cloud infrastructure to deploy their services 30. Some decentralized finance projects are based on the notion of AMM (Automatic Market Making) and don’t even need an order book.

The convenience provided by the cloud ecosystem changes some of the designs and lowers the threshold for entering the industry. This will surely inject innovative energy into the financial world.

Congratulations on getting this far! Now give yourself a pat on the back. Good job!

Chapter Summary

Figure — this diagram isn't included in the course export.

Reference materials

  1. LMAX exchange was famous for its open-source Disruptor: https://www.lmax.com/exchange
  2. IEX attracts investors by “playing fair”, also is the “Flash Boys Exchange”: https://en.wikipedia.org/wiki/IEX
  3. NYSE matched volume: https://www.nyse.com/markets/us-equity-volumes
  4. HKEX daily trading volume: https://www.hkex.com.hk/Market-Data/Statistics/Consolidated-Reports/Securities-Statistics-Archive/Trading_Value_Volume_And_Number_Of_Deals?sc_lang=en#select1=0
  5. All of the World’s Stock Exchanges by Size: http://money.visualcapitalist.com/all-of-the-worlds-stock-exchanges-by-size/
  6. Denial of service attack: https://en.wikipedia.org/wiki/Denial-of-service_attack
  7. Market impact: https://en.wikipedia.org/wiki/Market_impact
  8. Fix trading: https://www.fixtrading.org/
  9. Event Sourcing: https://martinfowler.com/eaaDev/EventSourcing.html
  10. CME Co-Location and Data Center Services: https://www.cmegroup.com/trading/colocation/co-location-services.html
  11. Epoch: https://www.epoch101.com/
  12. Order book: https://www.investopedia.com/terms/o/order-book.asp
  13. Order book: https://en.wikipedia.org/wiki/Order_book
  14. How to Build a Fast Limit Order Book: https://bit.ly/3ngMtEO
  15. Developing with kdb+ and the q language: https://code.kx.com/q/
  16. Latency Numbers Every Programmer Should Know: https://gist.github.com/jboner/2841832
  17. mmap: https://en.wikipedia.org/wiki/Memory_map
  18. Context switch: https://bit.ly/3pva7A6
  19. Reliable User Datagram Protocol: https://en.wikipedia.org/wiki/Reliable_User_Datagram_Protocol
  20. Aeron: https://github.com/real-logic/aeron/wiki/Design-Overview
  21. Chaos engineering: https://en.wikipedia.org/wiki/Chaos_engineering
  22. Raft: https://raft.github.io/
  23. Designing for Understandability: the Raft Consensus Algorithm: https://raft.github.io/slides/uiuc2016.pdf
  24. Supported Matching Algorithms: https://bit.ly/3aYoCEo
  25. Dark pool: https://www.investopedia.com/terms/d/dark-pool.asp
  26. HdrHistogram: A High Dynamic Range Histogram: http://hdrhistogram.org/
  27. HotSpot (virtual machine): https://en.wikipedia.org/wiki/HotSpot_(virtual_machine)
  28. Cache line padding: https://bit.ly/3lZTFWz
  29. NACK-Oriented Reliable Multicast: https://en.wikipedia.org/wiki/NACK-Oriented_Reliable_Multicast
  30. AWS Coinbase Case Study: https://aws.amazon.com/solutions/case-studies/coinbase/

Finished reading?

Mark it complete to track your progress.