ASF GitHub Bot commented on FLINK-4520:
Github user StephanEwen commented on the issue:
Thank you for that big contribution. Siddhi looks like a cool approach to
Before digging into the details, I would like to start a discussion about
whether we should have this as a part of the core Flink repository, as a
subproject, or if it would be best to have it initially as an external project.
The reason is that that Flink repository is becoming a bit big right now.
Build times are very long, test stability hard to manage, and there is quite a
bit of "dead" code that was contributed by someone at some point but seems
rarely used and is not maintained by the contributors.
To help have a good discussion, it would be great to learn a bit more:
- How complete is the implementation?
- Would you be up for maintaining this code?
- Are you building this as an experiment, or building a production use
case based on Siddhi on Flink?
> Integrate Siddhi as a lightweight CEP Library
> Key: FLINK-4520
> URL: https://issues.apache.org/jira/browse/FLINK-4520
> Project: Flink
> Issue Type: New Feature
> Components: CEP
> Affects Versions: 1.2.0
> Reporter: Hao Chen
> Labels: cep, library, patch-available
> Fix For: 1.2.0
> h1. flink-siddhi proposal
> h2. Abstraction
> Siddhi CEP is a lightweight and easy-to-use Open Source Complex Event
> Processing Engine (CEP) released as a Java Library under `Apache Software
> License v2.0`. Siddhi CEP processes events which are generated by various
> event sources, analyses them and notifies appropriate complex events
> according to the user specified queries.
> It would be very helpful for flink users (especially streaming application
> developer) to provide a library to run Siddhi CEP query directly in Flink
> streaming application.
> * http://wso2.com/products/complex-event-processor/
> * https://github.com/wso2/siddhi
> h2. Features
> * Integrate Siddhi CEP as an stream operator (i.e.
> `TupleStreamSiddhiOperator`), supporting rich CEP features like
> * Filter
> * Join
> * Aggregation
> * Group by
> * Having
> * Window
> * Conditions and Expressions
> * Pattern processing
> * Sequence processing
> * Event Tables
> * Provide easy-to-use Siddhi CEP API to integrate Flink DataStream API (See
> `SiddhiCEP` and `SiddhiStream`)
> * Register Flink DataStream associating native type information with
> Siddhi Stream Schema, supporting POJO,Tuple, Primitive Type, etc.
> * Connect with single or multiple Flink DataStreams with Siddhi CEP
> Execution Plan
> * Return output stream as DataStream with type intelligently inferred
> from Siddhi Stream Schema
> * Integrate siddhi runtime state management with Flink state (See
> * Support siddhi plugin management to extend CEP functions. (See
> h2. Test Cases
> * org.apache.flink.contrib.siddhi.SiddhiCEPITCase:
> h2. Example
> StreamExecutionEnvironment env =
> SiddhiCEP cep = SiddhiCEP.getSiddhiEnvironment(env);
> cep.registerStream("inputStream1", input1, "id", "name",
> cep.registerStream("inputStream2", input2, "id", "name",
> DataStream<Tuple5<Integer,String,Integer,String,Double>> output = cep
> "from every s1 = inputStream1[id == 2] "
> + " -> s2 = inputStream2[id == 3] "
> + "select s1.id as id_1, s1.name as name_1, s2.id as id_2, s2.name as
> name_2 , custom:plus(s1.price,s2.price) as price"
> + "insert into outputStream"
This message was sent by Atlassian JIRA