Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to Build an Exchange - Jane Street #74

Open
wangwangwar opened this issue Apr 8, 2017 · 0 comments
Open

How to Build an Exchange - Jane Street #74

wangwangwar opened this issue Apr 8, 2017 · 0 comments

Comments

@wangwangwar
Copy link
Owner

wangwangwar commented Apr 8, 2017

https://www.youtube.com/watch?v=b1e4t2k2KJY

  1. What is an exchange?

Electronic exchanges play an important role in the world financial system, acting as focal points where actors from across the world meet to trade with each other.

  1. What are the requirements?
  • Scale. 3 million transaction.
  • Fairness. At the same time as much as possible.
  • Reliability.
  • Durability.
  • Robustness to bad clients.
  1. A crazy design, Why?

  2. Need for speed

  • Millions of transactions per-second system-wide.
  • Everyone gets every message.
  • One-in-flight => latency determines throughput. (Not really, I think)
  • Recovery requires replay.
  • Doable with commodity hardware and safe languages.
  • More parallelism is possible.
  1. Locking
  • Every message has a unique topic
  • And a per-topic sequence number
  • Contributor tries to grab next seqno
  1. Takeaways
  • Speed isn't just for speed's sake
  • State machine replication is a huge win
  • Determinism great for other reasons
  • Parallelism is possible, but centralization has benefits
  • Crazy-looking designs can turn out well
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant