Siddhi is a java library that listens to events from data streams, detect complex conditions described via a Streaming SQL language, and trigger actions. It can be used to do both Stream Processing and Complex Event Processing.
It can be used for;
- Data preprocessing
- Generate alerts based on thresholds
- Calculate aggregations over a short window or a long time period
- Joining multiple data streams
- Data correlation while finding missing and erroneous events
- Interact streaming data with databases
- Detecting temporal event patterns
- Tracking (something over space or time)
- Trend analysis (rise, fall, turn, tipple bottom)
- Real-time predictions with existing and online machine learning models
- And many more ... “Patterns of Streaming Realtime Analytics”
Siddhi is free and open source, under Apache Software License v2.0.
Get started with Siddhi in few minutes by following Siddhi Quick Start Guide
Why use Siddhi ?¶
- Fast, that UBER use it to process 20 Billion events per day (300,000 events per second).
- Lightweight (<2MB), embeddable in Android and RaspberryPi
- Has 40+ Siddhi Extensions
- 60+ companies including many Fortune 500 companies use Siddhi in production, following are some;
- WSO2 use Siddhi in their products such as WSO2 Data Analytics Server and WSO2 Stream Processor to provide stream processing capabilities. Uses it as the edge analytics library of WSO2 IoT Server, core of WSO2 API Manager's throttling, and core of WSO2 products' analytics.
- UBER for fraud analytics
- Apache Eagle use Siddhi as a policy engine
- Solutions based on Siddhi has been a finalist at ACM DEBS Grand Challenge Stream Processing competitions in 2014, 2015, 2016, 2017.
- Been basis of many academic research projects and have 60+ citations.
If you also use Siddhi, we would love to hear more.
Try Siddhi with WSO2 Stream Processor¶
WSO2 Stream Processor is a server version of Siddhi that's also released under Apache Software License v2.0. It was a Strong Performer in The Forrester Wave™: Big Data Streaming Analytics, Q1 2016 (Report) and a Cool Vendors in Internet of Things Analytics, 2016.
To get following capabilities by using WSO2 Stream Processor :
- Siddhi Query Editor
- Siddhi Debugger
- Event Simulator
- Run Siddhi as a Server with High Availability and Scalability
- Monitoring support for Siddhi
- Realtime dashboard
- Business user friendly query generation and deployment
There are domain specific solutions built using Siddhi, including Fraud Detection, Stock Market Surveillance, Location analytics, Proximity Marketing, Contextual Recommendation, Ad Optimization, Operational Analytics, and Detecting Chart Patterns.
If you want more information please contact us via http://wso2.com/support/.
Find the released Siddhi libraries from here.
Active development version of Siddhi : v4.0.0 built on Java 8.
Siddhi Query Guide for Siddhi v4.x.x
Latest Stable Release of Siddhi : v3.0.5 built on Java 7.
Siddhi Query Guide for Siddhi v3.x.x
Latest API Docs¶
Latest API Docs is 4.0.0-M83.
Jenkins Build Status¶
|Siddhi Branch||Jenkins Build Status|
How to Contribute¶
- Please report issues at GitHub Issue Tracker.
- Feel fee to play with the Siddhi source code and send your contributions as pull requests to master branch.
- Post your questions with the "Siddhi" tag in Stackoverflow.
- For more details and support contact us via http://wso2.com/support/
- We are committed to ensuring support for Siddhi (with it's extensions) and WSO2 Stream Processor from development to production.
- Our unique approach ensures that all support leverages our open development methodology and is provided by the very same engineers who build the technology.
- For more details and to take advantage of this unique opportunity contact us via http://wso2.com/support/.
Siddhi was joint research project initiated by WSO2 and University of Moratuwa, Sri Lanka.