evolution of financial exchange architectures
play

Evolution of Financial Exchange Architectures Martin Thompson - - PowerPoint PPT Presentation

Evolution of Financial Exchange Architectures Martin Thompson - @mjpt777 10 years ago Evolution Design Resilience Performance Deployment Design State Machines Input State State State Machines Input State State Input


  1. Evolution of Financial Exchange Architectures Martin Thompson - @mjpt777

  2. 10 years ago…

  3. Evolution Design Resilience Performance Deployment

  4. Design

  5. State Machines Input × State → State

  6. State Machines Input × State → State Input × State → Output

  7. Replicated State Machines Ordered Inputs + Deterministic Execution => Same State & Outputs

  8. Distributed Event Log

  9. Rich Domain Models (DDD)

  10. Rich Domain Models (DDD) Data Structures (CS)

  11. Time & Timers

  12. Fairness

  13. Clients Gateway Gateway Gateway Gateway Gateway Gateway Matching Matching Engine Engine

  14. Clients Gateway Gateway Gateway Matching Matching Matching Engine Engine Engine

  15. Clients Gateway Gateway Gateway Gateway Gateway Gateway Gateway Gateway Gateway Matching Matching Matching Engine Engine Engine

  16. Clients Gateway Gateway Gateway Gateway Gateway Gateway Gateway Gateway Gateway Matching Matching Matching Matching Matching Matching Engine Engine Engine Engine Engine Engine

  17. Migration by Asset Class OTC => Exchange Traded

  18. Resilience

  19. Fault Tolerance

  20. Fault Tolerance Primary + Secondary vs Consensus

  21. Leslie Lamport - Paxos Barbara Liskov - Viewstamp Replication Ken Birman - Virtual Synchrony

  22. https://raft.github.io/raft.pdf

  23. Raft Safety Guarantees Election Safety • Leader Append-Only • Log Matching • Leader Completeness • State Machine Safety •

  24. Client Client Client Client Client Consensus Consensus Consensus Module Module Module Service Service Service

  25. Client Client Client Client Client 20 25 21 Consensus Consensus Consensus Module Module Module Service Service Service 15 25 21 29 18 23

  26. Client Client Client Client Client 20 25 21 Consensus Consensus Consensus Module Module Module Service Service Service 15 25 21 29 18 23 Append Position/Index

  27. Client Client Client Client Client Commit Position/Index 20 25 21 Consensus Consensus Consensus Module Module Module Service Service Service 15 25 21 29 18 23

  28. Client Client Client Client Client 20 25 21 Consensus Consensus Consensus Module Module Module Service Service Service 15 25 21 29 18 23 Service Position/Index

  29. Client Client Client Client Client 20 25 21 Consensus Consensus Consensus Module Module Module Boom! Service Service Service 15 25 21 29 18 23

  30. Client Client Client Client Client 20 25 21 Consensus Consensus Consensus Module Module Module Service Service Service 15 25 21 29 18 23

  31. Importance of Code Quality & Model Fidelity

  32. Robustness

  33. How well does your application handle errors?

  34. Performance

  35. Latency distribution awakening

  36. Systemic & queueing events

  37. Garbage Collectors

  38. Memory Access Patterns & Data Structures

  39. Binary Codecs

  40. Spectre & Meltdown

  41. Greatly increased cost for system calls, page faults, and context switching

  42. Advances in Hardware

  43. New IO APIs

  44. Mechanical Sympathy

  45. Does programming language choice matter?

  46. Deployment

  47. Continuous Delivery

  48. 24 * 7 Operations

  49. Flexible Scaling

  50. Wrapping up…

  51. What will the next 10 years hold?

  52. @mjpt777 https://github.com/real-logic/aeron “ The future is already here – it's just not evenly distributed” - William Gibson

Recommend


More recommend