The goal of the framework is to build a data processing pipeline with relatively big tasks, we only have to process tens or hundreds of messages per seconds. Some are CPU intensive and can last 30 seconds. Other tasks are IO intensive.
We also send very few messages: the smallest message we send is represent batches of log lines.
As a result, our framework does not really care about performances. On one thread, it can process ~2.5 millions messages on my laptop: this is well above our needs, but it is correct to say that our framework is very slow compared to others.
Let me just tell you the limitations on Quickwit side: the framework is very bound to Quickwit code base right now and uses tokio runtimes to run the different kind of tasks.
We put the MIT licence so people can copy/paste pieces of code.