US2025141812A1PendingUtilityA1

Highly deterministic latency in a distributed system

Assignee: HYANNIS PORT RES INCPriority: Aug 7, 2020Filed: Jan 3, 2025Published: May 1, 2025
Est. expiryAug 7, 2040(~14 yrs left)· nominal 20-yr term from priority
G06Q 20/027H04L 47/22H04L 47/522G06Q 40/04H04L 47/28H04L 47/562
68
PatentIndex Score
0
Cited by
0
References
0
Claims

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

exact text as granted — not AI-modified
1 . A method to process messages with a deterministic latency at an electronic sequencer device, the method comprising:
 receiving an incoming message;   sending a forwarded message to one or more compute engines, the forwarded message depending on the incoming message, and the forwarded message including (a) a time based value and (b) a sequence identifier that determines a relative processing order of the forwarded message;   receiving a compute-response message from the one or more compute engines, the compute-response message including information derivable from the time based value;   
       determining a deterministic egress time that depends on both a deterministic latency value and the information derivable from the time based value as received in the compute-response message; and
 causing an outbound message to be sent at the deterministic egress time, the outbound message based on the compute-response message. 
 
     
     
         2 . The method of  claim 1  additionally comprising:
 in response to receiving a second incoming message,
 causing a second outbound message to be sent at a second deterministic egress time, without either (a) sending a second forwarded message that depends on the second incoming message to the one or more compute engines or (b) receiving a second compute-response message related to the second outbound message. 
 
 
     
     
         3 . The method of  claim 1  wherein the compute-response message comprises one or more compute response messages, each associated with a trade match event between two match parties, and wherein causing the outbound message to be sent further comprises:
 causing a first outbound message to be sent based on one of the one or more compute response messages to a first one of the two match parties, and 
 causing a second outbound message to be sent based on one of the one or more compute response messages to a second one of the two match parties, 
 wherein the first outbound message and second outbound message are caused to be sent simultaneously at the deterministic egress time. 
 
     
     
         4 . The method of  claim 1  additionally comprising:
 receiving an incoming message further comprises receiving a first incoming message from a first one of two participant devices; 
 receiving a second incoming message from a second one of the two participant devices; and 
 wherein the time based value depends on an arrival time associated with either the first incoming message or the second incoming message, whichever has a later arrival time. 
 
     
     
         5 . The method of  claim 1  further comprising:
 causing a market data message to be sent at the deterministic egress time, the market data message based on the compute-response message, and the market data message sent to a device associated with a subscriber of a market data stream. 
 
     
     
         6 . The method of  claim 1  additionally comprising:
 receiving an asynchronous message from the one or more compute engines; and 
 causing the asynchronous message to be sent at the deterministic egress time to two or more participant devices. 
 
     
     
         7 . The method of  claim 1  further comprising:
 assigning the deterministic latency from a set of deterministic latencies such that a particular deterministic latency is not subsequently assigned until other deterministic latencies in the set of deterministic latencies have been assigned. 
 
     
     
         8 . The method of  claim 7  wherein assigning the deterministic latency further comprises:
 assigning the deterministic latency such that a number of consecutively assigned, lower valued deterministic latencies is limited to a predetermined number. 
 
     
     
         9 . The method of  claim 1  wherein:
 receiving the incoming message further comprises receiving a first incoming message and receiving a second incoming message, and 
 causing the outbound message to be sent further comprises:
 causing a first outbound message to be sent to a first one of two participant devices according to the deterministic latency; and 
 causing a second outbound message to be sent to a second one of the two participant devices according to another deterministic latency that is different than the deterministic latency associated with the first outbound message. 
 
 
     
     
         10 . The method of  claim 1  wherein:
 causing the outbound message to be sent further comprises:
 causing a first outbound message to be sent to a participant device according to the deterministic latency; and 
 causing a second outbound message to be sent to a subscriber of a market data stream according to another deterministic latency that is different than the deterministic latency associated with the first outbound message. 
 
 
     
     
         11 . The method of  claim 1  wherein the time based value either
 (a) depends on an ingress time of the incoming message; or 
 (b) depends on a desired egress time determined by adding the ingress time of the incoming message to the deterministic latency before the forwarded message is sent to the one or more compute engines, or 
 (c) is an index value that depends on the ingress time of the incoming message and the deterministic latency. 
 
     
     
         12 . The method of  claim 1  additionally comprising:
 detecting an event related to system performance; and 
 modifying the deterministic latency based on the event. 
 
     
     
         13 . The method of  claim 1  additionally comprising:
 receiving the incoming message from a participant device via a gateway; and 
 sending the outbound message to the participant device via the gateway. 
 
     
     
         14 . The method of  claim 13  wherein sending the outbound message further comprises:
 delaying the outbound message at the electronic sequencer device until the deterministic egress time before sending the outbound message to the gateway. 
 
     
     
         15 . The method of  claim 1  additionally comprising:
 determining the time based value at the electronic sequencer device. 
 
     
     
         16 . The method of  claim 1  wherein receiving an incoming message further comprises receiving a first incoming message;
 and the method additionally comprises: 
 receiving a second incoming message; and 
 wherein the first incoming message comprises a first trading protocol and the second incoming message comprises a second trading protocol different from the first trading protocol. 
 
     
     
         17 . The method of  claim 16  additionally comprising:
 causing the outbound message to be sent further comprises causing a first outbound message to be sent using the first trading protocol; 
 
       causing a second outbound message to be sent using the second trading protocol; and 
       wherein the deterministic latency is the same for the first trading protocol and the second trading protocol. 
     
     
         18 . The method of  claim 16  additionally comprising:
 causing the outbound message to be sent further comprises causing a first outbound message to be sent using the first trading protocol; 
 causing a second outbound message to be sent using the second trading protocol; and 
 wherein the deterministic latency is different for the first trading protocol and the second trading protocol. 
 
     
     
         19 . An electronic sequencer device configured to:
 receive an incoming message;   send a forwarded message to one or more compute engines, the forwarded message depending on the incoming message, and the forwarded message including (a) a time based value and (b) a sequence identifier that determines a relative processing order of the forwarded message;   receive a compute-response message from the one or more compute engines, the compute-response message including information derivable from the time based value;   
       determine a deterministic egress time that depends on both a deterministic latency value and the information derivable from the time based value as received in the compute-response message; and
 cause an outbound message to be sent at the deterministic egress time, the outbound message based on the compute-response message. 
 
     
     
         20 . A method for performing electronic trading, the method comprising:
 receiving, at a sequencer node, an incoming message representing an electronic trade request with an offer to buy or sell a financial instrument;   determining, at the sequencer node, a sequence-marked message being a sequenced version of the incoming message that includes a time based value;   forwarding, from the sequencer node, the sequence-marked message with the time based value to a core compute node;   receiving, at the sequencer node, a compute response message that includes a result of an electronic trading matching function in accordance with a relative ordering of the sequence-marked message, the compute response message also including information derivable from the time based value;   determining, at the sequencer node, a deterministic egress time that depends on both a deterministic latency value and the information derivable from the time based value as received in the compute response message; and   sending an outbound message at the deterministic egress time, the outbound message based on the compute response message.   
     
     
         21 . The method of  claim 20  additionally comprising:
 receiving, at the core compute node, the sequence-marked message with the time based value from the sequencer node; 
 determining, at the core compute node, relative ordering of the sequence-marked message among sequence-marked versions of other messages received by the core compute node; 
 completing, at the core compute node, the electronic trading matching function in accordance with the relative ordering determined, the completing causing the offer to be matched with a counteroffer for the financial instrument; 
 generating, at the core compute node, the compute response message based on the completing and based on the information derivable from the time based value; and 
 forwarding, from the core compute node, the compute response message with the information derivable from the time based value, to the sequencer node.

Join the waitlist — get patent alerts

Track US2025141812A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.