# US 2022/0045964 A1 · Highly deterministic latency in a distributed system

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

- Number: US 2022/0045964 A1
- Document ID: US20220045964A1
- Status: Published application
- Kind: A1
- Application number: 17/351,521
- Filed: 2021-06-18
- Published: 2022-02-10
- Earliest claimed: 2020-08-07
- Assignees: Hyannis Port Research, Inc.
- Applicants: Hyannis Port Research, Inc.
- Inventors: Anthony D. Amicangioli; Allen Bast; B. Joshua Rosen; Christophe Juhasz
- Web page: https://patentgrep.com/patent/US20220045964A1

## CPC

- H04L 47/562: {Attaching a time tag to queues}
- G06Q 20/027: {involving a payment switch or gateway}
- G06Q 40/04: Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
- H04L 47/22: Traffic shaping
- H04L 47/28: in relation to timing considerations
- H04L 47/522: {Dynamic queue service slot or variable bandwidth allocation}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- 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

## Abstract

A distributed computing system, such as may be used to implement an electronic trading system, supports a notion of fairness in latency. The system does not favor any particular client. Thus, being connected to a particular access point into the system (such as via a gateway) does not give any particular device an unfair advantage or disadvantage over another. That end is accomplished by precisely controlling latency, that is, the time between when request messages arrive at the system and a time at which corresponding response messages are permitted to leave. The precisely controlled, deterministic latency can be fixed over time, or it can vary according to some predetermined pattern, or vary randomly within a pre-determined range of values.

## Claims

### Claim 1

A system comprising:
a plurality of gateways, connected to receive inbound messages from two or more participant devices;
one or more of the gateways each further configured to
determine a time based value (TBV) for a selected one of the inbound messages;
forward the selected inbound message with its respective TBV to one or more compute nodes;
receive a response message from the one or more compute nodes, the response message having information derivable from the TBV; and
send a response message to at least one of the participant devices as an outbound message, the outbound message sent at a deterministic egress time that depends on both the information derivable from the TBV and a deterministic latency.

### Claim 2 (depends on 1)

The system of claim 1 wherein the TBV depends on a timestamp that relates to a receive time for the selected inbound message.

### Claim 3 (depends on 1)

The system of claim 1 wherein the TBV depends on a desired egress time for the response message.

### Claim 4 (depends on 3)

The system of claim 3 additionally comprising:
a packet scheduler, configured to receive the response message, the packet scheduler comprising a set of indexed locations, each associated with a desired egress time; and
wherein the TBV is a value that depends on a value of an indexed location associated with the desired egress time.

### Claim 5 (depends on 1)

The system of claim 1 wherein the TBV is inserted into an unused field in the inbound message before being forwarded to one of the compute nodes.

### Claim 6 (depends on 1)

The system of claim 1 wherein the TBV is added as part of an internal system protocol field within the inbound message.

### Claim 7 (depends on 1)

The system of claim 1 wherein the information derivable from the TBV comprises the TBV.

### Claim 8 (depends on 1)

The system of claim 1 wherein the deterministic latency depends on a maximum time for the gateway to receive the response message from the one or more compute nodes.

### Claim 9 (depends on 1)

The system of claim 1 wherein the deterministic latency follows a varying but deterministic pattern.

### Claim 10 (depends on 1)

The system of claim 1 wherein the deterministic latency is selected from a set of latencies evenly distributed across a predetermined range.

### Claim 11 (depends on 1)

The system of claim 1 wherein the deterministic latency is configured on per gateway, per-connection, or system-wide basis.

### Claim 12 (depends on 1)

The system of claim 1 wherein the deterministic latency is dynamically changed due to system conditions.

### Claim 13 (depends on 1)

The system of claim 1 wherein two or more of the gateways each receive the response message from the compute node.

### Claim 14 (depends on 1)

The system of claim 1 additionally wherein
the selected inbound message is forwarded to the one or more compute nodes and the response message is received from the one or more compute nodes via a plurality of direct connections provided between each of the one or more gateways and each of the one or more compute nodes.

### Claim 15 (depends on 1)

The system of claim 1 wherein the response message is associated with a trade match event between two match parties each associated with a respective one of two participant devices, and where the gateways are further configured to
send the response message as an outbound message at the egress time simultaneously to the two participant devices.

### Claim 16 (depends on 15)

The system of claim 15 wherein the outbound message is also sent simultaneously at the egress time as a market data event message to a device associated with a subscriber of a market data stream.

### Claim 17 (depends on 1)

The system of claim 1 wherein the one or more gateways are further configured to receive an asynchronous message from one of the compute nodes, and send the asynchronous message as an outbound message simultaneously at the egress time to two or more participant devices.

### Claim 18 (depends on 1)

The system of claim 1 wherein the TBV further depends on a time value related to one or more of a message path delay or compute node delay.

### Claim 19 (depends on 1)

The system of claim 1 wherein the one or more gateways are further configured to
forward the selected inbound message with its respective TBV to one or more sequencer nodes.

### Claim 20 (depends on 1)

The system of claim 1 additionally wherein:
the one or more compute nodes are configured to receive the selected inbound message with its respective TBV from the one or more gateways;
the one or more compute nodes are also configured to return the response message with the information derivable from the TBV to the one or more gateways;

### Claim 21 (depends on 1)

The system of claim 1 wherein
the one or more gateways are further configured to forward the selected inbound message with its respective TBV to one or more sequencer nodes; and
the one or more sequencer nodes are configured to forward the selected inbound message with its respective TBV as a sequence-marked message to the one or more compute nodes.

### Claim 22 (depends on 2)

The system of claim 2 wherein the one or more compute nodes are further configured to
determine the response message based on either one of or both of the selected inbound message or the sequence-marked message.

### Claim 23 (depends on 1)

The system of claim 1 wherein
the selected inbound message is related to an electronic trade matching function; and
the response message is configured to complete the electronic trade matching function.

### Claim 24

A method to transmit a response message from an electronic device with a deterministic latency, the method comprising:
receiving an incoming message from a participant device;
determining a time based value (TBV) for the incoming message;
sending a forwarded message to one or more compute engines, the forwarded message including the incoming message and the TBV;
receiving a compute-response message from one or more compute engines, the compute-response message including information derivable from the TBV;
delaying the compute-response message until a deterministic egress time is reached, where the deterministic egress time depends on both the TBV and the deterministic latency; and
transmitting the compute-response message to the participant device at the deterministic egress time.
