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.
But building an exchange is a difficult technical challenge, requiring high transaction rates, low, deterministic response times, fairness, and reliability.
This talk looks at the question of how to design an exchange through the lens of JX, a crossing engine we built at Jane Street in the last two years. Performance plays an interesting role in this design, in that, although the endtoend latency of the system is not important in and of itself, the ability of individual components of JX to handle messages rates in the 500k/sec range with latencies in the singledigit microseconds helped us build a replicated system that is both simple and robust.