Login, Replay, and Sequencing

Session level messages, both inbound (TPH to CFE) and outbound (CFE to TPH) are unsequenced.

Inbound (TPH to CFE) application messages are sequenced. Upon reconnection, CFE informs the TPH of the last processed sequence number; the TPH may choose to resend any messages with sequence numbers greater than this value. A gap forward in the TPH's incoming sequence number is permitted at any time and is ignored by CFE. Gaps backward in sequence number (including the same sequence number used twice) are never permitted and will always result in a Logout Response message being sent and the connection being dropped.

Most (but not all) outbound (CFE to TPH) application messages are monotonically sequenced per matching unit. Each message's documentation will indicate whether it is sequenced or unsequenced. While matching units on BOE correspond directly to matching units on Multicast PITCH, sequence numbers do not.

Upon reconnection, a TPH sends the last received sequence number per matching unit in a Login Request message. CFE will then respond with any missed messages.

The ReplayUnspecifiedUnit value can be used to control the replay behavior for unknown units. If the flag is set to F (Fail), CFE will send a Login Response and close the connection if there are any messages to replay from any unspecified unit. If the flag is set to S (Skip), CFE will exclude messages from unspecified matching units during replay. If the flag is set to R (Replay), CFE will send messages from unspecified units during replay. CFE will send a Replay Complete message when replay is finished. If there are no messages to replay, a Replay Complete message will be sent immediately after a Login Response message. CFE will reject all orders and all quote updates during replay.

When connecting to unit ports (Unit Order Ports, Unit Quoting Ports, or Unit Purge Ports), ReplayUnspecifiedUnits will be processed per the above description if the local unit number is not present in any instance of the UnitSequence field.

Assuming a TPH has requested replay messages using a properly formatted Login Request after a disconnect, any unacknowledged orders remaining with the TPH after the Replay Complete message is received should be assumed to be unknown to CFE.

Unsequenced messages will not be included during replay.

A session is identified by the SessionId and SessionSubId (both supplied by CFE). Only one concurrent connection per username and session sub-identifier is permitted per matching unit.

If a login is rejected, an appropriate Login Response message will be sent and the connection will be terminated.

Cboe Titanium Cboe Futures Exchange BOEv3 Specification - Login, Replay, and Sequencing | Cboe