There are plenty of stream processors out there but Wisdom does not just increase the count. It is adaptive, distributable and self-boosting without compromising the performance.
Key Features:
- Self-tuning queries
- Functionally auto-scaling deployment
- High throughput
- Lightweight
- Distributed
- Open Source
Adaptive and Tunable
One of the key selling point of Wisdom is its ability to tune queries for best results. Wisdom queries can be defined using variables and Wisdom will tune them based on a loss function you define. For example, we defined three Wisdom rules to detect intrusions but in none of them we defined the time window interval or the minimum count threshold. Instead, Wisdom mined and optimized those values from training data. Obtained optimal values gave us 99% accuracy in intrusion detection. Isn't that cool?
For more details about the optimization algorithm, please read Real-time Intrusion Detection in Network Traffic Using Adaptive and Auto-scaling Stream Processor
Performance
A common limitation I have observed in dynamic stream processors is their performance bottleneck. I designed the underlying architecture of Wisdom in such a way that it is comparable with existing commercial stream processors. I developed a simple filter query to compare Wisdom with Apache Flink, WSO2 Siddhi and Esper CEP. The throughput and latency of Wisdom is closed to WSO2 Siddhi and better than Esper.
Stream Processor | Throughput | Latency |
---|---|---|
Apache Flink | 6,711,544 events/sec | 100 nanoseconds |
WSO2 Siddhi | 3,811,876 events/sec | 216 nanoseconds |
Wisdom | 2,543,299 events/sec | 332 nanoseconds |
Esper | 2,247,807 events/sec | 334 nanoseconds |
Functionally Auto-scaling
In our research, we have shown that Wisdom consumes significantly fewer system resources than other distributed stream processors. The complete deployment setup and how it works are described in our research paper.
Wisdom Query
Wisdom Query is an SQL like query inspired by Siddhi Query. An expressive query language hides the complexity of stream processing and make it super easy to use stream processors. In addition, it lets you deploy CEP applications via REST API calls instead of transferring a deployable jar
file or any other binary file.