| Just wanted to also give a shout out to Apache DataFusion[0] that IOx relies on a lot (and contributes to as well!). It's a framework for writing query engines in Rust that takes care of a lot of heavy lifting around parsing SQL, type casting, constructing and transforming query plans and optimizing them. It's pluggable, making it easy to write custom data sources, optimizer rules, query nodes etc. It's has very good single-node performance (there's even a way to compile it with SIMD support) and Ballista [1] extends that to build it into a distributed query engine. Plenty of other projects use it besides IOx, including VegaFusion, ROAPI, Cube.js's preaggregation store. We're heavily using it to build Seafowl [2], an analytical database that's optimized for running SQL queries directly from the user's browser (caching, CDNs, low latency, some WASM support, all that fun stuff). [0] https://github.com/apache/arrow-datafusion [1] https://github.com/apache/arrow-ballista [2] https://github.com/splitgraph/seafowl |