Login, Replay, and Sequencing

Session level messages, both inbound (Member to Cboe) and outbound (Cboe to Member) are unsequenced.

Inbound (Member to Cboe) application messages are sequenced. Upon reconnection, Cboe informs the member of the last processed sequence number; the member may choose to resend any messages with sequence numbers greater than this value. A gap forward in the member’s incoming sequence number is permitted at any time and is ignored by Cboe. 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.

Many outbound (Cboe to Member) 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 member sends the last received sequence number per matching unit in a LoginRequest message. Cboe will then respond with any missed messages. If the sequence message gap is greater than the value supported by Cboe for a unitized port, the login will be rejected with a Login Response Status of R (replay too deep). The maximum value for Cboe Primary and Secondary ports is 1000 messages, while an unlimited number are permitted in DR.

The ReplayInstruction value can be used to control the replay behavior for unknown units. If the flag is set to F (Fail), Cboe will send a Login Response message and close the connection if the login request does not list all matching units. If the flag is set to S (Skip), Cboe will exclude messages from unspecified matching units during replay. If the flag is set to R (Replay), Cboe will send messages from unspecified units during replay (starting with sequence 1 per unspecified unit and limited to 1000 messages on a unitized port). Cboe 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. Cboe will reject all orders during replay. If the flag is set to D (Deep Replay), the login is accepted only on an inactive unitized port, to facilitate the replay of messages beyond the limit imposed on an active unitized port.

If a member has requested replay messages using a properly formatted LoginRequest message after a disconnect, any unacknowledged orders remaining with the member after the Replay Complete message is received should be assumed to be unknown to Cboe.

Unsequenced messages will not be included during replay.

A session is identified by the SessionId and SessionSubId (both supplied by Cboe).

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

Cboe Titanium U.S. Options BOEv3 Specification - Login, Replay, and Sequencing | Cboe