Use a resource-specific procedure rather than treating all streams as interchangeable.
Catalogue
Open /events, buffer frames, read the paginated REST catalogue, then apply newer market revisions and continue live.
Orders
- Open
/orderswithoutsinceand buffer frames. - For every relevant account and market, page through
GET .../orders. FetchNEW,ACTIVE, andPARTIALLY_FILLEDas needed; the endpoint accepts one status filter per request. - Merge buffered order views using
last_update_engine_seq; keep the view with the greater value. - Continue live and persist
seqatomically with applied state.
This procedure can rebuild current order state after resume_too_old. Historical order transitions that are no longer reflected in current state are not recreated.
Positions and accounting
Use GET .../positions?presentation=dual as an eventually consistent position snapshot and GET .../payouts for payout reconciliation. Do not blindly add buffered accounting deltas to a REST snapshot: the public contract does not expose a shared snapshot watermark that proves which deltas the snapshot already includes. Most importantly, these REST views are not a replacement for accounting events lost beyond the supported replay window.
Pagination fields are operation-specific: order, position, and payout lists return next_cursor; event and market lists return cursor. Continue until the relevant field is null.