14 October 2020

  • Updated

New setup

This Wednesday we will implement yet another important step in our platform performance efforts. The WebSocket API improvement is targeted at the handling of request queues to manage peak activity more efficiently. 

  1. System capacity allocated to handling unauthenticated public requests will be capped.

  2. For each authenticated connection we will have so-called dedicated workers for 🅐 BTC private ME actions, 🅑 ETH private ME actions, 🅒 for Non-ME private actions 🅓 for public (but authenticated) actions.

Current setup for request sent via single connection:

Requests sent

Processing order

🅐🅑🅓🅑🅑🅒🅐🅐

🅐🅑🅓🅑🅑🅒🅐🅐

New setup for request sent via single connection:

Requests sent

Processing order

🅐🅑🅓🅑🅑🅒🅐🅐

🅐🅐🅐

🅑🅑🅑

🅓

🅒

The allocation of two different workers 🅐 or 🅑 implies that a user doesn't have to open two separate connections to assure that BTC Matching Engine actions do not interfere with ETH Matching Engine actions.

All matching engine actions 🅐 or 🅑 for a given connection and given currency are furthermore stored in a manageable queue so e.g. cancel_all can cancel unprocessed buy/sell/edit requests and cancel_by_label can cancel unprocessed buy/sell requests.

When canceling an unprocessed order in the manageable queue, this results in a new error code 13666 "request_cancelled_by_user".