Orders
An order’s applied image (msgType orderUpdate)
URL — No public environment serves this socket yet.
Topic order
Request parameters
Response parameters
Push data parameters · orderUpdate
live and terminal are the forward-compatible reads: a status appended to the platform’s schema later arrives with both booleans already set, so a client that buckets on them never mis-buckets a status it has not heard of. Bucket on those, not on status.
cancelRequested is live and a cancel in flight — a fact about an order, not a different kind of order.
Two voices explain a row, and a client shows both. message is the platform’s own words for reason; venueText is whatever the venue said, verbatim. They are not alternatives: where the venue is the one that decided, message is the framing (“the venue rejected this order”) and venueText is the substance (“insufficient margin”). Where the platform decided — OWNER_TIMEOUT, INSTRUCTION_FRESHNESS_EXPIRED, RECONCILE_PROOF — no venue said anything and message is the only text there is. Render message, then venueText after it when present. Both are null on the ordinary path, where a row states no reason at all.
What the image holds. Every order of the organization this member retains, keyed by orderId: every live order whatever its age, and a terminal order whose last venue timestamp — or its acceptance, when the venue stated none — falls inside the served window, 24 hours by default and a per-deployment setting. A terminal order older than the window is not in a new image, though a delta for it would still arrive; it is not gone, it is out of scope, and order history is a query lane’s job rather than this one’s.
How a row leaves. Only by the platform releasing it under its own retention, and that release rides no wire — there is no removal message and no tombstone. A client learns a row is gone by re-subscribing and rebuilding its map from the image, which is exactly what part: 1 clearing the map is for. Nothing else ever removes a row; a terminal order stays in your map, and terminal is what marks it.
Push data parameters · orderRejected
The order topic’s second shape. A submitOrder or cancelOrder that was offered and then refused at admission arrives here, correlated by the clientOrderId you sent (or by orderId for a cancel that named one). This is the other half of the offer contract: an ack told you the command reached the stream, and one of orderUpdate status: QUEUED or orderRejected tells you what became of it.
It is never in a snapshot, and isSnapshot is false here by construction. A refusal is a fact no fold holds: nothing was minted, so there is no row to retain or restore. A client that replaces its blotter on last: true will not get its refusals back — they are live-only, and history is a query lane’s job. Do not key a map on them.
Switch on msgType. Both shapes carry event: order and topic: order, because they are the same subscription; msgType is the discriminator and it is a const on both.