It is known that the market data stream and the order stream have no guarantee of ordering. Is the same true for order lifecycle calls (effectively cancel and replace orders) via the API and the order stream. As an example:
Assume the latency between Bob (client) and BF is constant for all calls.
1). Bob subscribes to order stream;
2). Bob uses placeOrders (async);
3). Bob receives response;
3). Bob sees new orders in the order stream and updates cache;
4). Bob calls cancelOrders;
5). ....
At this point - is it possible the order stream emits the orders in their new cancelled state before the cancelOrder API returns? Do steps (2) & (3) have the same problem?
Is it possible the order stream has the orders in their new/changed state in it *before* the placeOrders/cancledOrders API call has returned?
Note the question disregards latency. This is purely about how BF internally handles the requests internally. Are they well ordered?
Assume the latency between Bob (client) and BF is constant for all calls.
1). Bob subscribes to order stream;
2). Bob uses placeOrders (async);
3). Bob receives response;
3). Bob sees new orders in the order stream and updates cache;
4). Bob calls cancelOrders;
5). ....
At this point - is it possible the order stream emits the orders in their new cancelled state before the cancelOrder API returns? Do steps (2) & (3) have the same problem?
Is it possible the order stream has the orders in their new/changed state in it *before* the placeOrders/cancledOrders API call has returned?
Note the question disregards latency. This is purely about how BF internally handles the requests internally. Are they well ordered?


Comment