The Bottleneck to Unhindered Scalability
Imagine there’s a sudden spike in interest in acquiring cryptocurrencies (or in getting rid of it). Fuelled by FOMO (or FUD), newcomers and veteran traders alike flock towards exchanges to trade Bitcoin and other digital assets.
Your favorite exchange is feeling the strain of the demand from the market. A slight inconvenience, but you think nothing of it as you attempt to open a trade of your own. All seems well, until the fateful message appears informing you that there was an error processing your order. There’s simply too many users, and the exchange’s backend cannot handle the load.
If you’ve encountered this frustrating phenomenon, you’ve no doubt cursed your exchange for its inability to resolve the issue in a timely manner. Unfortunately, the problem is often caused by the architecture of a given platform, meaning that the infrastructure is not easily scaled to accommodate a sudden influx of activity. Of course, the fast pace and volatility of the cryptocurrency markets are what attract a lot of traders in the first place – to ensure that every opportunity can be seized, exchanges need to step up their game.
What Causes a System Overload?
In short, system overloads on cryptocurrency exchanges occur when the platform is hit with too many requests. The hardware / software stack is built to handle a certain amount of throughput, and when that throughput has been exceeded, the system rapidly begins to encounter problems.
From the exchange’s point of view, this can have disastrous consequences, as exasperated users opt instead to migrate to competing platforms. However, it’s unlikely that alternatives will fare much better – after all, every exchange has its limits.
Towards Robust Trading Engines
Much like the protocols of the cryptocurrencies being traded on these platforms, a desirable exchange must be scalable and boast high availability. A typical shortcoming seen in the industry is the use of vertical scaling, which refers to the practice of hosting a system on a single node, and gradually upgrading it as required with additional RAM / CPU.
If vertical scaling can be thought of as ‘scaling upwards’, horizontal scaling can be described as ‘scaling outwards’.
Whilst this may initially be more convenient, it can be detrimental as the node gets busier. Should it suffer from an outage, the server will become unreachable – likewise should it need to undergo maintenance. What this means for an exchange is that users will be unable to access their accounts in case of a major upgrade or system failure.
The vastly superior horizontal scaling model can be implemented with a little more effort. If vertical scaling can be thought of as ‘scaling upwards’, horizontal scaling can be described as ‘scaling outwards’. Instead of relying on a single, high-powered node, a system scaling horizontally will rely on a cluster of machines to carry out tasks in parallel. By balancing the load across these machines, traffic can be better managed as requests can be allocated to nodes with the capacity to handle them.
Such a setup has a more modular infrastructure – at times of unprecedented activity, it’s trivial for an engineer to spin up supplementary nodes to balance the load. In this manner, an outage or upgrade will not impact the functioning of the platform.
We’ve seen how rapidly a full-fledged bull run can take off. Exchanges need to be prepared for the next event, so that they’re not caught off-guard when the time inevitably comes.
For our part, at BTSE, we’re certainly ready. We’ve rolled out a state-of-the-art matching engine, capable of matching up to 800,000 orders per second. Read more about it in our recent blog post.
Our aim is to create a platform that offers you the most enjoyable trading experience. If you have questions or suggestions, please don’t hesitate to reach out to us at firstname.lastname@example.org or DM us on Twitter: @BTSEcom.