Code Monkey home page Code Monkey logo

siddhi's Introduction

Siddhi

Jenkins Build Status GitHub (pre-)release GitHub (Pre-)Release Date GitHub last commit codecov License

Siddhi is a Streaming and Complex Event Processing engine that listens to events from data streams, detects complex conditions described via a Streaming SQL language, and triggers actions.

Overview

Siddhi supports:

  • Streaming data integration

    • Retrieving data from various event sources (Kafka, NATS, JMS, HTTP, CDC, etc)
    • Map events to and from multiple event formats (JSON, XML, Text, Avro, etc)
    • Data preprocessing & cleaning
    • Joining multiple data streams
    • Integrate streaming data with databases (RDBMS, Cassandra, HBase, Redis, etc)
    • Integrate with external services
    • Publish data to multiple event sinks (Email, JMS, HTTP, etc)
  • Streaming data analytics

    • Generating alerts based on thresholds
    • Calculate aggregations over a short windows (time, length, session, unique, etc) or a long time period
    • Calculate aggregations over long time periods with seconds, minutes, hours, days, months & years granularity
    • Correlating data while finding missing and erroneous events
    • Detecting temporal event patterns
    • Analyzing trends (rise, fall, turn, tipple bottom)
    • Run pretreated machine learning models (PMML, Tensorflow)
    • Learn and predict at runtime using online machine learning models
  • Adaptive Intelligence

    • Static rule processing
    • Stateful rule processing
    • Decision making through synchronous stream processing
    • Query tables, windows and aggregations
  • And many more ... For more information, see Patterns of Streaming Realtime Analytics

Siddhi is free and open source, under Apache Software License v2.0.

Get Started!

Get started with Siddhi in a few minutes by following the Siddhi Quick Start Guide

Why use Siddhi ?

  • It is fast. UBER uses it to process 20 Billion events per day (300,000 events per second).
  • It is lightweight (<2MB), and embeddable in Android, Python and RaspberryPi.
  • It has over 50 Siddhi Extensions
  • It is used by over 60 companies including many Fortune 500 companies in production. Following are some examples:
  • Solutions based on Siddhi have been finalists at ACM DEBS Grand Challenge Stream Processing competitions in 2014, 2015, 2016, 2017.
  • Siddhi has been the basis of many academic research projects and has over 60 citations.

If you are a Siddhi user, we would love to hear more.

Develop Siddhi using IntelliJ IDEA

Install IDEA plugin to get the following features:

  • Siddhi Query Editor with syntax highlighting and with basic auto completion
  • Siddhi Runner and Debugger support to test Siddhi Application

Try Siddhi with WSO2 Stream Processor

WSO2 Stream Processor is a server version of Siddhi that is 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.

If you use WSO2 Stream Processor, you can use the Siddhi functionality with the following additional features:

  • The Siddhi Query Editor tool with syntax highlighting and advanced auto completion support
  • The Siddhi Runner and Debugger tool
  • The Event Simulator tool
  • 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.

For more information please contact us via http://wso2.com/support/.

Siddhi Versions

  • Active development version of Siddhi : v5.0.0-SNAPSHOT built on Java 8 & 11.

    Find the released Siddhi libraries here.

    Siddhi Query Guide for Siddhi v5.x.x

    Architecture of Siddhi v5.x.x

  • Latest Stable Release of Siddhi v4.x.x : v4.4.8 built on Java 8. (Recommended for production use)

    Find the released Siddhi libraries here.

    Siddhi Query Guide for Siddhi v4.x.x

    Architecture of Siddhi v4.x.x

  • Latest Stable Release of Siddhi v3.x.x : v3.2.3 built on Java 7.

    Find the released Siddhi libraries here.

    Siddhi Query Guide for Siddhi v3.x.x

Latest API Docs

Latest API Docs is 5.0.0.

How to Contribute

Build from the Source

Prerequisites

Steps to Build

  1. Get a clone or download source from Github

    git clone https://github.com/siddhi-io/siddhi.git
  2. Run the Maven command mvn clean install from the root directory

Contact us

Support

  • We are committed to ensuring support for Siddhi (with its 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.

siddhi's People

Contributors

suhothayan avatar wso2-jenkins-bot avatar mohanvive avatar tishan89 avatar grainier avatar sacjaya avatar dilini-muthumala avatar niveathika avatar sajithshn avatar minudika avatar ksdperera avatar gokul avatar ramindu90 avatar rukshiw avatar lasanthafdo avatar pcnfernando avatar dependabot-support avatar anoukh avatar swsachith avatar miyurud avatar dnwick avatar ashensw avatar anugayan avatar thilia avatar rajeev3001 avatar nirmal070125 avatar nisalaniroshana avatar nadundesilva avatar raveensr avatar sujanan avatar

Watchers

James Cloos avatar Charuka Karunanayake avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.