IP Library Granted Patent US 12670011
Granted Patent B2
US 12670011 · App. 18/651,010 · Granted Jun 30, 2026

Distributed and transactionally deterministic data processing architecture

Inventors: Zachary Bonig (Skokie, IL); Jose Antonio Acuna-Rohter (Des Plaines, IL); Pearce Peck-Walden (Chicago, IL); James Bailey (Western Springs, IL); Eric Thill (Naperville, IL); David Lariviere (Chicago, IL)
Assignee: Chicago Mercantile Exchange Inc.
G06F9/466G06F9/546G06Q20/085G06Q20/12G06Q20/389G06Q20/401G06Q20/405G06Q40/04H04L45/24H04L51/18H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12670011
App. No.
18/651,010
Granted
Jun 30, 2026
Kind
B2
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 (65)

1 . A system comprising:

a plurality of transaction receivers configured to receive electronic data transaction request messages from at least one client computer;

a first processor configured to detect that a predetermined number of the electronic data transaction request messages originated from a location and activate a first transaction receiver of the plurality of transaction receivers, the first transaction receiver located closer to the location than the other plurality of transaction receivers, wherein the first transaction receiver is configured to receive, over a first data path characterized by a first transmission latency, the electronic data transaction request messages, sequence the received electronic data transaction request messages, and forward the sequenced electronic data transaction request messages to a plurality of transaction processors over a second path characterized by a second transmission latency; and

the plurality of transaction processors configured to process the sequenced electronic data transaction request messages, generate at least one electronic data transaction result message based on the processing of the sequenced electronic data transaction request messages, and transmit at least a subset of the at least one electronic data transaction result message over a third path characterized by a third transmission latency to the at least one client computer.

2 . The system of claim 1 , wherein the first transaction receiver is located geographically, logically closer, or a combination thereof to the location than the other plurality of transaction receivers.

3 . The system of claim 1 , wherein only one of the plurality of transaction receivers is activated at any one time.

4 . The system of claim 1 , wherein the first processor is configured to de-activate the other plurality of transaction receivers.

5 . The system of claim 1 , wherein the first processor is configured to:

de-activate the first transaction receiver at a pre-determined time; and

activate a second transaction receiver of the plurality of transaction receivers based on the pre-determined time.

6 . The system of claim 5 ,

wherein the second transaction receiver is configured to receive other electronic data transaction request messages, augment each of the other received electronic data transaction request messages, and transmit each augmented electronic data transaction request message to the plurality of transaction processors for processing.

7 . The system of claim 1 , wherein one of the plurality of transaction receivers is configured to, upon a failure or disconnection of the first transaction receiver:

receive electronic data transaction request messages from the at least one client computer;

sequence the received electronic data transaction request messages; and

transmit the sequenced electronic data transaction request messages to one or more of the plurality of transaction processors for processing.

8 . The system of claim 1 , further comprising:

a plurality of arbiters, wherein the plurality of transaction processors are configured to transmit the at least a subset of the at least one electronic data transaction result message over a fourth path characterized by a fourth transmission latency to one of the plurality of arbiters geographically or logically closest to the respective transaction processor than the other plurality of arbiters, wherein the one of the plurality of arbiters is configured to receive and 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 fifth path characterized by a fifth transmission latency less than the first transmission latency.

9 . The system of claim 8 , 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.

10 . The system of claim 8 , wherein the at least one client computer determines which arbiter 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.

11 . The system of claim 8 , wherein a distance from the arbiter to the at least one client computer is less than a distance between the at least one client computer and the first transaction receiver.

12 . The system of claim 1 ,

wherein the sequencing comprises augmenting each 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 sequenced electronic data transaction request messages 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.

13 . A computer implemented method comprising:

receiving electronic data transaction request messages from at least one client computer;

detecting that a predetermined number of the electronic data transaction request messages originated from a location;

activating a first transaction receiver of a plurality of transaction receivers, the first transaction receiver located closer to the location than the other plurality of transaction receivers, wherein the first transaction receiver is configured to receive, over a first data path characterized by a first transmission latency, the electronic data transaction request messages, sequence the received electronic data transaction request messages, and forward the sequenced electronic data transaction request messages to a plurality of transaction processors over a second path characterized by a second transmission latency;

processing, by the plurality of transaction processors, the sequenced electronic data transaction request messages;

generating, by the plurality of transaction processors, at least one electronic data transaction result message based on the processing of the sequenced electronic data transaction request messages; and

transmitting, by the plurality of transaction processors, at least a subset of the at least one electronic data transaction result message over a third path characterized by a third transmission latency to the at least one client computer.

14 . The method of claim 13 , wherein the first transaction receiver is located geographically, logically closer, or a combination thereof to the location than the other plurality of transaction receivers.

15 . The method of claim 13 , further comprising:

only activating one of the plurality of transaction receivers at any one time.

16 . The method of claim 13 , further comprising:

de-activating the other plurality of first transaction receivers.

17 . The method of claim 13 , further comprising:

de-activating the first transaction receiver at a pre-determined time of day; and

activating a second transaction receiver of the plurality of transaction receivers based on the pre-determined time of day.

18 . The method of claim 17 ,

further comprising:

receiving, by the second transaction receiver, other electronic data transaction request messages;

augmenting, by the second transaction receiver, each of the other received electronic data transaction request messages; and

transmitting, by the second transaction receiver, each augmented electronic data transaction request message to the plurality of transaction processors for processing.

19 . The method of claim 13 , further comprising, upon a failure or disconnection of the first transaction receiver:

activating a second transaction receiver of the plurality of transaction receivers;

receiving, by the second transaction receiver, the electronic data transaction request messages from the at least one client computer;

sequencing, by the second transaction receiver, the received electronic data transaction request messages; and

transmitting, by the second transaction receiver, the sequenced electronic data transaction request messages to one or more of the plurality of transaction processors for processing.

20 . The method of claim 13 , further comprising:

transmitting, by the plurality of transaction processors, the at least a subset of the at least one electronic data transaction result message over a fourth path characterized by a fourth transmission latency to one of a plurality of arbiters, the one of the plurality of arbiters located geographically or logically closest to the respective transaction processor than the other plurality of arbiters, wherein the one of the plurality of arbiters is configured to receive and 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 fifth path characterized by a fifth transmission latency less than the first transmission latency.

21 . The method of claim 20 , further comprising:

selecting, by an arbiter selector, 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.

22 . The method of claim 20 , wherein the at least one client computer determines which arbiter 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.

23 . The method of claim 20 , wherein a distance from the 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 transaction receiver.

24 . The method of claim 13 ,

wherein the sequencing comprises augmenting each 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 sequenced electronic data transaction request messages 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.

25 . A system comprising:

means for receiving electronic data transaction request messages from at least one client computer;

means for detecting that a predetermined number of the electronic data transaction request messages originated from a location;

means for activating a first transaction receiver of a plurality of transaction receivers, the first transaction receiver located geographically or logically closer to the location than the other plurality of transaction receivers, wherein the first transaction receiver is configured to receive, over a first data path characterized by a first transmission latency, the electronic data transaction request messages, sequence the received electronic data transaction request messages, and forward the sequenced electronic data transaction request messages to a plurality of transaction processors over a second path characterized by a second transmission latency; and

means for processing the sequenced electronic data transaction request messages;

means for generating at least one electronic data transaction result message based on the processing of the sequenced electronic data transaction request messages; and

means for transmitting at least a subset of the at least one electronic data transaction result message over a third path characterized by a third transmission latency to at least one client computer.