Search code examples
wso2complex-event-processingsiddhiwso2-cep

WSO2 CEP - Insert into multiple streams


In SiddhiQL how is it possible to insert into multiple streams with same condition?

When i have two correlated events (event1 and event2) and want to insert event1 in streamA; insert event2 in streamB; insert abstractEvent in streamC.

Do i have to write three Siddhi queries ?

Thank you.


Solution

  • Yes you need to write multiple Siddhi queries in same execution plan to insert events into multiple streams. The logic you are selecting events for each stream can be done using a filter. In following case i am inserting odd meta_id events in to stream1 and even into stream2 by having a filter.

    @Plan:name('ExecutionPlan')
    
    @Import('test:1.0.0')
    define stream test (meta_id int, meta_name string);
    
    
    from test[meta_id % 2 == 0]
    select * 
    insert into stream1;
    
    
    from test[meta_id % 2 == 1]
    select * 
    insert into stream2;