Needs advice

What stack is a cryptocurrency exchange built upon? For example let's see Binance's page of BTC/USDT market. The order data refreshes in milliseconds, graphs refreshes in milliseconds, orders are placed in ms and everything moves well dynamically. How are they able to achieve it? What front-end framework might they be using? What backend framework for this kind of data, framework for matching engine, database for such heavy loads?

11 upvotes·33.6K views
Replies (2)
Head of Technology at Adonmo·

For such a more realtime-focused, data-centered application like an exchange, it's not the frontend or backend that matter much. In fact for that, they can do away with any of the popular frameworks like React/Vue/Angular for the frontend and Go/Python for the backend. For example uniswap's frontend (although much simpler than binance) is built in React. The main interesting part here would be how they are able to handle updating data so quickly. In my opinion, they might be heavily reliant on realtime processing systems like Kafka+Kafka Streams, Apache Flink or Apache Spark Stream or similar. For more processing heavy but not so real-time processing, they might be relying on OLAP and/or warehousing tools like Cassandra/Redshift. They could have also optimized few high frequent queries using NoSQL stores like mongodb (for persistance) and in-memory cache like Redis (for further perfomance boost to get millisecond latencies).

6 upvotes·1 comment·30.9K views
Akshay Srivastava
Akshay Srivastava
June 28th 2021 at 3:54PM

Thank you @Krishna for your valuable inputs. Yes, we too think of using Kafka+Kafka Streams and Redis.


While these tools are a great start, you are going to need low latency, and extremely high bandwidth. I couldn't see this happening without you having pretty much your own datacenter at your disposal. While the post below gives some great options, it's extremely apache-biased. Not saying apache is bad, but there are other options to explore. My recommendation is a mix of services from AWS, azure.. Whatever cloud service you choose to go with. You'll definitely need a streaming service.. Either self-built or cloud provided, and a restful API for things that don't quite require the power of a stream. Then, as you scale, you'll start to realize that even the best stacks in the world have bottlenecks, and you'll want to employ use of some type of messaging queue.

4 upvotes·4.7K views
Avatar of Krishna Chaitanya Bommakanti

Krishna Chaitanya Bommakanti

Head of Technology at Adonmo