System messages
Our live API uses a system record (SystemMsg) to indicate non-error information to clients.
One use is heartbeating, to ensure the TCP connection remains open and to help clients detect a connection issue. A heartbeat will only be sent if no other data record was sent to the client during the heartbeat interval. The interval between heartbeat messages can be configured with the heartbeat_interval_s parameter to Live. The is_heartbeat() method will return True if the record is a heartbeat.
The gateway sends an end-of-interval message (END_OF_INTERVAL) once it has published every record for one interval of an OHLCV, BBO, or CBBO schema. Its ts_event is the exclusive end of that interval. For OHLCV schemas, that is the bar's ts_event plus the bar interval, so an ohlcv-1m end-of-interval message with a ts_event of 14:31:00 follows the bars stamped 14:30:00. For BBO and CBBO schemas, it equals the ts_recv of the records in the interval. The gateway sends one end-of-interval message per schema and interval.
| Field | Type | Description |
|---|---|---|
msg | str | The message from the gateway. |
code | int | Describes the type of system message. See table below. |
System code variants
Corresponds with the SystemCode enum.
| Variant | code | Description |
|---|---|---|
| HEARTBEAT | 0 | A message sent in the absence of other records to indicate the connection remains open. |
| SUBSCRIPTION_ACK | 1 | An acknowledgement of a subscription request. |
| SLOW_READER_WARNING | 2 | The gateway has detected this session is falling behind real-time data. |
| REPLAY_COMPLETED | 3 | Indicates a replay subscription has caught up with real-time data. This message will be sent per schema. |
| END_OF_INTERVAL | 4 | Signals that all records for an interval-based schema have been published for the interval ending at ts_event. |