GSoC: Siddhi Pattern to detect absence of events
It was my pleasure to work with WSO2 again after few months but this time as a GSoC 2017 student. The objective of the project was implementing Siddhi pattern processor(s) to detect the absence of events which was achieved earlier using Windows but with several limitations. For those who are not heard about Siddhi: Siddhi is an open source complex event processing engine used to power WSO2 Stream Processor and WSO2 Analytics Server. After successful completion of this project, Siddhi 4.0 (not released yet) will be able to detect events that are not arrived. For the moment, the complete feature is merged to the development branch and can be tested using Siddhi 4.0.0-M50.
I take this as an opportunity to thank Sriskandarajah Suhothayan my GSoC mentor and associate director and architect at WSO2 for guiding me throughout the project. Even though I already worked with WSO2 analytic team, working overseas was a different experience especially when having code reviews and discussing the architecture of the implementation. Even though the proposed feature is successfully completed and merged with the code base, I am looking forward to contribute to WSO2 products.
With the support of my mentor, design decisions and understanding the project were not a problem for me. However lack of in-person communication made the conversations too long. Sometimes I had to send PRs only to show what I have done and to compare the different and then had to close them without merging. Apart from that this summer was full of fun with code and complex event processing. I also would like to convey my thanks to Google for providing such an opportunity.
For future GSoC students, I highly recommend WSO2 as a company with true open culture and friendly environment where you have a lot to learn in terms of experience as well as open source culture.
Google Summer of Code 2017 Project: Non-Occurrence of Events for Siddhi Patterns
You can find the detailed description of absent pattern and how to use it in my other blog:
GitHub Repositories
- Origin: https://github.com/slgobinath/siddhi
- Upstream: https://github.com/wso2/siddhi
Pull Requests
Bug Fixes
These pull requests contain the bug fixes I have made on the existing Siddhi implementation.
- Fix sequence and pattern issue with every and within
- Remove the partner event from the cloned state event
- Fix duplicate output for pattern with ‘and’
- Fix duplicate output logical or pattern
New Feature
The following pull requests contain the proposed feature and related bug fixes.
- Add pattern to detect events that are not arrived
- Fix ‘not A and B’ not sending output
- Fix error in partitioning the absent pattern processor
Mail Thread
The public mail thread related to this project can be found at WSO2 Oxygen Tank: [GSoC][Siddhi][CEP]: Siddhi Pattern for Absence of Events
Delivered Artifacts
- Complete source code
- Unit tests covering all the important aspects
- Samples and use cases