/market-data uses client subscription frames and does not support since.
- Connect and send
{"type":"subscribe","markets":[...]}. - Receive one
book_snapshotfor each newly subscribed market and replace the local book with it. - Apply each
book_diffandtradein contiguous per-marketmd_seqorder. A price level withqty = 0is deleted. - On an
md_seqgap, request a fresh snapshot by subscribing withforce_snapshot: true, then rebuild from that snapshot. - After reconnecting, subscribe again; the server sends fresh snapshots.
Unlike resumable-stream seq, market-data md_seq is dense per market on data frames. Heartbeats do not advance it. The server can also send periodic snapshots; apply them in the same way as the initial snapshot.