For more than half a year our development team has been working to drastically change the architecture of our trading platform. The goal was to create a platform that is really built to scale, potentially to millions of users. This project was the reason our customers have been waiting for the introduction of new trading products for some time. Yesterday we have executed a massive upgrade, completing our work on scalability. After this upgrade, we will start adding new products and features at high speed.
Like with any large upgrade it is possible that the system encounters some problems over the next few days. If this happens we want you to know that we will try our best to ensure any degraded service will be kept to a minimum. If you encounter any issues, please don’t hesitate to contact support.
Background of the upgrade
Deribit used to have quite a traditional architecture where all activities related to a trading book were dealt with on the same server. As we have seen with a number of other exchanges, not properly taking scalability into account can lead to a lot of performance problems down the line. As Deribit intends to drastically increase its scale and does not want to make any concession to its blazing fast execution we needed to solve this problem first.
After this upgrade, our exchange runs on a large cluster of dedicated servers, where the matching engines are running on servers isolated from the rest of the internet. The matching engine servers do all the matching and order handling for the trading books. They continuously send out order state updates to the webservers to which all users connect. The webservers do all the work needed to inform the customers about the status of their orders.
The new architecture is extremely flexible. For each matching engine server, we can quickly launch an almost unlimited amount of web servers to which traders can connect. At the same time, the web servers are kept completely in the loop of the state of the matching engine. This happens in such a way that if a problem would appear on the matching engine server, a web server can easily be converted to become a matching engine server.
This means that we do not even need specific backup servers anymore, as all our web servers are effectively stand-by replacements. Thanks to this new setup, we can now handle a virtually unlimited amount of messages and requests. The matching engine is now also extremely efficient and only has to deal with trade matching, and adding or removing orders from the order books.
Now our platform is ready to deal with any volume, stay tuned because over the next few days we intend to release a number of products and features that the market has been loudly asking for.