# US 12,010,162 B2 · Distributed and transactionally deterministic data processing architecture

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,010,162 B2
- Document ID: US12010162B2
- Status: Granted
- Kind: B2
- Application number: 18/137,233
- Filed: 2023-04-20
- Published: 2023-08-24
- Granted: 2024-06-11
- Earliest claimed: 2016-12-09
- Assignees: Chicago Mercantile Exchange Inc.
- Applicants: Chicago Mercantile Exchange Inc.
- Inventors: Zachary Bonig; Jose Antonio Acuna-Rohter; Pearce Peck-Walden; James Bailey; Eric Thill; David Lariviere
- Web page: https://patentgrep.com/patent/US12010162B2

## CPC

- G06F 9/466: {Transaction processing}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06Q 20/085: {involving remote charge determination or related payment systems}
- G06Q 20/12: specially adapted for electronic shopping systems
- G06Q 20/389: {Keeping log of transactions for guaranteeing non-repudiation of a transaction}
- G06Q 20/401: {Transaction verification}
- G06Q 20/405: {Establishing or using transaction specific rules}
- G06Q 40/04: Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
- H04L 45/24: Multipath
- H04L 51/18: Commands or executable codes
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A data transaction processing system including multiple transaction processors also includes an active transaction receiver that sequences all incoming messages from various sources to facilitate transactional determinism, as well as a results arbiter to efficiently decide which transaction processor result to choose as the correct output. The data transaction processing system minimizes overall latency by optimizing which transaction processors and results arbiters are responsive to specific client computer input requests or messages.

## Claims

### Claim 1

A system comprising:
a transaction receiver configured to: receive, over a first data path characterized by a first transmission latency, an electronic data transaction request message from at least one client computer; sequence the received electronic data transaction request message; and forward the sequenced electronic data transaction request message to a plurality of transaction processors over a second path characterized by a second transmission latency;
the plurality of transaction processors configured to: process the sequenced electronic data transaction request message; generate at least one electronic data transaction result message based on the processing of the sequenced electronic data transaction request message; and transmit at least a subset of the at least one electronic data transaction result message to an arbiter over a third path characterized by a third transmission latency; and
the arbiter configured to: select a particular electronic data transaction result message from the subset of the at least one electronic data transaction result message; and transmit the particular electronic data transaction result message to the at least one client computer over a fourth path characterized by a fourth transmission latency less than the first transmission latency.

### Claim 2 (depends on 1)

The system of claim 1,
wherein each of the subset of the electronic data transaction result messages includes an output of the processing, and
wherein the arbiter is configured to select the particular electronic data transaction result message from the subset if a majority of the plurality of the transaction processors independently arrive at the same output of the particular electronic data transaction result message.

### Claim 3 (depends on 1)

The system of claim 1, wherein the transaction receiver is located at a first location different than another location of the at least one client computer, and wherein the arbiter is located near the other location, wherein a distance from a location of the arbiter to the at least one client computer is less than a distance between the at least one client computer and the first location.

### Claim 4 (depends on 3)

The system of claim 3, wherein the distance comprises one of a physical and/or logical distance.

### Claim 5 (depends on 1)

The system of claim 1, wherein the arbiter is one of a plurality of arbiters each located at one of a plurality of different locations, each of the plurality of arbiters being configured to receive the particular electronic data transaction result message from any of the plurality of transaction processors and forward the particular electronic data transaction result message to the at least one client computer at any given time.

### Claim 6 (depends on 5)

The system of claim 5, further comprising an arbiter selector operative to determine which of the plurality of arbiters is coupled with the client computer over a network characterized by a lowest transmission latency and cause the determined arbiter to transmit the particular electronic data transaction result message to the client computer.

### Claim 7 (depends on 5)

The system of claim 5, further comprising an arbiter selector operative to select the one of the plurality of arbiters that is configured to at least forward the particular electronic data transaction result message received from any of the plurality of transaction processors at a particular time based on a current time of day.

### Claim 8 (depends on 5)

The system of claim 5, wherein the at least one client computer determines which of the plurality of arbiters is coupled with each of a plurality of other client computers over a network characterized by a lowest transmission latency there between and cause the determined arbiter to transmit the particular data transaction result message to that client computer.

### Claim 9 (depends on 1)

The system of claim 1,
wherein the sequencing comprises augmenting the received electronic data transaction request message with sequence data indicative of a relationship between the received electronic data transaction request message and any of a plurality of electronic data transaction request messages previously received by the transaction receiver, and
wherein the processing by the plurality of transaction processors comprises processing the received sequenced electronic data transaction request message in accordance with the corresponding sequence data to determine a change in a current state of an electronic marketplace for one or more financial products caused thereby.

### Claim 10 (depends on 1)

The system of claim 1, wherein the first and fourth transmission latencies each respectively depend at least upon an amount of data required to communicate the particular electronic data transaction result message and the electronic data transaction request message.

### Claim 11 (depends on 1)

The system of claim 1, wherein the amount of data required to communicate the particular electronic data transaction result message is greater than the amount of data required to communicate the electronic data transaction request message.

### Claim 12

A computer implemented method comprising:
receiving, by a transaction receiver, over a first data path characterized by a first transmission latency, an electronic data transaction request message from at least one client computer;
sequencing, by the transaction receiver, the received electronic data transaction request message;
forwarding, by the transaction receiver, the sequenced electronic transaction request message to a plurality of transaction processors over a second data path characterized by a second transmission latency;
processing, by the plurality of transaction processors, the sequenced electronic data transaction request message;
generating, by a plurality of transaction processors, at least one electronic data transaction result message based on the processing of the sequenced electronic data transaction request message; and
transmitting, by the plurality of transaction processors, at least a subset of the at least one electronic data transaction result message to an arbiter over a third path characterized by a third transmission latency less than the first transmission latency;
selecting, by the arbiter, a particular electronic data transaction result message from the subset of the at least one electronic data transaction result message; and
transmitting, by the arbiter, the particular electronic data transaction result message to the at least one client computer over a fourth path characterized by a fourth transmission latency less than the first transmission latency.

### Claim 13 (depends on 12)

The computer implemented method of claim 12,
wherein each of the subset of the electronic data transaction result messages includes an output of the processing, and
wherein the arbiter is configured to select the particular electronic data transaction result message from the subset if a majority of the plurality of the transaction processors independently arrive at the same output of the particular electronic data transaction result message.

### Claim 14 (depends on 12)

The computer implemented method of claim 12, wherein the transaction receiver is located at a first location different than another location of the at least one client computer, and wherein the arbiter is located near the other location, wherein a distance from a location of the arbiter to the at least one client computer is less than a distance between the at least one client computer and the first location.

### Claim 15 (depends on 14)

The computer implemented method of claim 14, wherein the distance comprises one of a physical and/or logical distance.

### Claim 16 (depends on 12)

The computer implemented method of claim 12, wherein the arbiter is one of a plurality of arbiters each located at one of a plurality of different locations, each of the plurality of arbiters being configured to receive the particular electronic data transaction result message from any of the plurality of transaction processors and forward the particular electronic data transaction result message to the at least one client computer at any given time.

### Claim 17 (depends on 16)

The computer implemented method of claim 16, further comprising determining which of the plurality of arbiters is coupled with the client computer over a network characterized by a lowest transmission latency and cause the determined arbiter to transmit the particular electronic data transaction result message to the client computer.

### Claim 18 (depends on 16)

The computer implemented method of claim 16, further comprising determining which of the plurality of arbiters is coupled with each of a plurality of other client computers over a network characterized by a lowest transmission latency there between and cause the determined arbiter to transmit the particular data transaction result message to that client computer.

### Claim 19 (depends on 16)

The computer implemented method of claim 16, selecting the one of the plurality of arbiters that is configured to at least forward the particular electronic data transaction result message received from any of the plurality of transaction processors at a particular time based on a current time of day.

### Claim 20 (depends on 12)

The computer implemented method of claim 12, wherein the first and fourth transmission latencies each respectively depend at least upon an amount of data required to communicate the particular electronic data transaction result message and the electronic data transaction request message.

### Claim 21 (depends on 12)

The computer implemented method of claim 12, wherein the amount of data required to communicate the particular electronic data transaction result message is greater than the amount of data required to communicate the electronic data transaction request message.

### Claim 22 (depends on 12)

The computer implemented method of claim 12,
wherein the sequencing comprises augmenting the received electronic data transaction request message with sequence data indicative of a relationship between the received electronic data transaction request message and any of a plurality of electronic data transaction request messages previously received by the transaction receiver; and
wherein the processing by the plurality of transaction processors comprises processing the received sequenced electronic data transaction request message in accordance with the corresponding sequence data to determine a change in a current state of an electronic marketplace for one or more financial products caused thereby.

### Claim 23

A system comprising:
means for receiving over a first data path characterized by a first transmission latency, an electronic data transaction request message from at least one client computer;
means for sequencing the received electronic data transaction request message;
means for forwarding the sequenced electronic transaction request message to a plurality of transaction processors over a second data path characterized by a second transmission latency;
means for processing the sequenced electronic data transaction request message;
means for generating at least one electronic data transaction result message based on the processing of the sequenced electronic data transaction request message; and
means for transmitting at least a subset of the at least one electronic data transaction result message to an arbiter over a third path characterized by a third transmission latency less than the first transmission latency;
means for selecting a particular electronic data transaction result message from the subset of the at least one electronic data transaction result message; and
transmitting, by the arbiter, the particular electronic data transaction result message to the at least one client computer over a fourth path characterized by a fourth transmission latency less than the first transmission latency.
