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

evolution of financial exchange architectures
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Evolution of Financial Exchange Architectures

Martin Thompson - @mjpt777

slide-2
SLIDE 2

10 years ago…

slide-3
SLIDE 3

Evolution

Design Resilience Performance Deployment

slide-4
SLIDE 4

Design

slide-5
SLIDE 5

Input × State → State

State Machines

slide-6
SLIDE 6

Input × State → State Input × State → Output

State Machines

slide-7
SLIDE 7

Ordered Inputs + Deterministic Execution => Same State & Outputs

Replicated State Machines

slide-8
SLIDE 8

Distributed Event Log

slide-9
SLIDE 9

Rich Domain Models (DDD)

slide-10
SLIDE 10

Rich Domain Models (DDD) Data Structures (CS)

slide-11
SLIDE 11

Time & Timers

slide-12
SLIDE 12

Fairness

slide-13
SLIDE 13

Clients

Matching Engine Matching Engine Gateway Gateway Gateway Gateway Gateway Gateway

slide-14
SLIDE 14

Clients

Matching Engine Matching Engine Gateway Gateway Gateway Matching Engine

slide-15
SLIDE 15

Clients

Matching Engine Matching Engine Gateway Gateway Gateway Matching Engine Gateway Gateway Gateway Gateway Gateway Gateway

slide-16
SLIDE 16

Clients

Matching Engine Matching Engine Gateway Gateway Gateway Matching Engine Gateway Gateway Gateway Gateway Gateway Gateway Matching Engine Matching Engine Matching Engine

slide-17
SLIDE 17

Migration by Asset Class OTC => Exchange Traded

slide-18
SLIDE 18

Resilience

slide-19
SLIDE 19

Fault Tolerance

slide-20
SLIDE 20

Primary + Secondary

vs

Consensus

Fault Tolerance

slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

slide-23
SLIDE 23

Raft Safety Guarantees

  • Election Safety
  • Leader Append-Only
  • Log Matching
  • Leader Completeness
  • State Machine Safety
slide-24
SLIDE 24

Client Client Client Client Client Consensus Module Service Consensus Module Service Consensus Module Service

slide-25
SLIDE 25

Client Client Client Client Client Consensus Module Service Consensus Module Service Consensus Module Service

15 25 21 29 18 23 20 25 21

slide-26
SLIDE 26

Client Client Client Client Client Consensus Module Service Consensus Module Service Consensus Module Service

15 25 21 29 18 23 20 25 21 Append Position/Index

slide-27
SLIDE 27

Client Client Client Client Client Consensus Module Service Consensus Module Service Consensus Module Service

15 25 21 29 18 23 20 25 21 Commit Position/Index

slide-28
SLIDE 28

Client Client Client Client Client Consensus Module Service Consensus Module Service Consensus Module Service

15 25 21 29 18 23 20 25 21 Service Position/Index

slide-29
SLIDE 29

Client Client Client Client Client Consensus Module Service Consensus Module Service Consensus Module Service

15 25 21 29 18 23 20 25 21

Boom!

slide-30
SLIDE 30

Client Client Client Client Client Consensus Module Service Consensus Module Service Consensus Module Service

15 25 21 29 18 23 20 25 21

slide-31
SLIDE 31

Importance of Code Quality & Model Fidelity

slide-32
SLIDE 32

Robustness

slide-33
SLIDE 33

How well does your application handle errors?

slide-34
SLIDE 34

Performance

slide-35
SLIDE 35

Latency distribution awakening

slide-36
SLIDE 36

Systemic & queueing events

slide-37
SLIDE 37

Garbage Collectors

slide-38
SLIDE 38

Memory Access Patterns & Data Structures

slide-39
SLIDE 39

Binary Codecs

slide-40
SLIDE 40

Spectre & Meltdown

slide-41
SLIDE 41

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

slide-42
SLIDE 42

Advances in Hardware

slide-43
SLIDE 43

New IO APIs

slide-44
SLIDE 44

Mechanical Sympathy

slide-45
SLIDE 45

Does programming language choice matter?

slide-46
SLIDE 46

Deployment

slide-47
SLIDE 47

Continuous Delivery

slide-48
SLIDE 48

24 * 7 Operations

slide-49
SLIDE 49

Flexible Scaling

slide-50
SLIDE 50

Wrapping up…

slide-51
SLIDE 51

What will the next 10 years hold?

slide-52
SLIDE 52

@mjpt777 https://github.com/real-logic/aeron

“The future is already here – it's just not evenly distributed”

  • William Gibson