High ingestion throughput with contained infra costs
Plug and play with Grafana via PostgreSQL interface
Join time series with relational data via SQL
Fast analytics to build order books on the fly
Simple and intuitive setup
Fast queries alongside constant ingestion speed
We started to build the foundations of a system that would efficiently capture our infrastructure and business metrics in one place and monitor them in real-time.
As an exchange, we need to ensure fair and orderly markets, so the timing of messages is critical to us. We produce comprehensive latency reports and dashboards per security, per market, and for each client. The reports detail the time it takes for an order instructed through a FIX or binary port to hit our matching engine and be a fully-executed trade on the exchange.
Overall market metrics using Grafana dashboards
We also track all the orders and trades coming through (such as count, quantity, amount) and aggregate this data to produce a live order book, the amount of stock one can buy or sell at a given price level.
Timeline of market events visualized on Grafana
We need a high throughput database capable of efficiently ingesting all the data coming into the exchange. Queries need to be fast as we monitor critical data tracked in real-time via a Grafana dashboard. Finally, SQL is what we were looking for from a simplicity standpoint, and this lowers the learning curve with the database. We tried several alternative time-series databases, but they were not fast enough and could not process the number of transactions per second we dealt with.
I could see that QuestDB is built for developers by developers. The team understands our domain very well and knows the context around the data volumes, throughput, and types involved. The features of the database architecture, such as columnar storage, are thoughtful additions and will help our system stay efficient as our datasets grow.
Architecture diagram with QuestDB and Grafana to ingest and query market data and latency metrics from Aquis Exchange
In terms of database performance, the QuestDB queries are so fast that we adapted our domain model to aggregate order data in real-time, which we could not have done otherwise. This allows us to produce order books in real-time based on the order and trades being placed on our exchange.
We also benefit from the tooling and integrations through the PostgreSQL interface: we can seamlessly display real-time charts on Grafana and track those metrics continuously. QuestDB's relational model and SQL language also allow us to join time-series data with relational data and extract all the insights we need for our business.
Finally, the rate of improvement of the product is impressive. There's a continual rate of releases, and we see the team focusing on the right things.
“QuestDB is a time series database truly built by developers for developers. We found that QuestDB provides a unicorn solution to handle extreme transactions per second while also offering a simplified SQL programming interface.”
Viet Lee, CTO at Aquis Exchange