{"id":49341600,"url":"https://github.com/redborder/cep","last_synced_at":"2026-04-27T04:04:31.676Z","repository":{"id":34984233,"uuid":"39066897","full_name":"redBorder/cep","owner":"redBorder","description":"RESTful Complex Event Processor powered by Kafka \u0026 Siddhi","archived":false,"fork":false,"pushed_at":"2025-04-07T11:13:18.000Z","size":225,"stargazers_count":48,"open_issues_count":1,"forks_count":19,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-07T12:25:00.334Z","etag":null,"topics":["redborder","redborder-ng","rpm","service"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redBorder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2015-07-14T09:47:39.000Z","updated_at":"2025-03-31T13:20:34.000Z","dependencies_parsed_at":"2024-03-06T16:33:27.039Z","dependency_job_id":"dbc95ce1-b14e-48ff-9fa1-5068473a51a5","html_url":"https://github.com/redBorder/cep","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/redBorder/cep","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redBorder%2Fcep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redBorder%2Fcep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redBorder%2Fcep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redBorder%2Fcep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redBorder","download_url":"https://codeload.github.com/redBorder/cep/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redBorder%2Fcep/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32321945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["redborder","redborder-ng","rpm","service"],"created_at":"2026-04-27T04:04:29.430Z","updated_at":"2026-04-27T04:04:31.659Z","avatar_url":"https://github.com/redBorder.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# redborder Complex Event Processor\n\nAs [Wikipedia](https://en.wikipedia.org/wiki/Complex_event_processing) states, Complex event processing, or CEP, is\nevent processing that combines data from multiple sources to infer events or patterns that suggest more complicated\ncircumstances.\n\nredborder CEP executes a set of rules which, as said, can infer events, patterns and sequences.\nThe input of these rules are all the events from a set of kafka topics, and the result of these calculations are inserted on a new set of kafka topics.\n\nThe rules are exposed with a REST API, so you can add, remove or list rules on the fly.\n\n![schema2](https://cloud.githubusercontent.com/assets/474728/8697787/4542fdf2-2af8-11e5-9148-e989dbfa0429.jpg)\n\n## Rules\n\nThe unit of work on redborder CEP are called _rules_. The rules are written on JSON and accessed and modified via the REST API. They are a combination of execution plans from a library called Siddhi and some more data to help you map your kafka topics to Siddhi streams. You can find more information about Siddhi and execution plans below.\n\nTake a look at the [rules wiki page](https://github.com/redBorder/cep/wiki/Rules) for information about how to write rules.\n\n## REST API\n\nThe REST API lets you add, remove, list and synchronize rules on the fly. Find more information about it at the [REST API wiki page](https://github.com/redBorder/cep/wiki/Rest-API).\n\n## Siddhi\n\nThe engine of redborder CEP is called [Siddhi](https://github.com/wso2/siddhi). It's a Java library made by WSO2 that acts as a event processor engine. It lets you work with data streams and combine, analyze and join them in any way you want.\n\nFor you to know how to write execution plans, which are the body of our rules, you must know the Siddhi Query Language, a simple SQL-like language that lets you work with data streams.\nSome features available are:\n* Aggregate functions like averages, sums, max, min, stddev and counts.\n* Filters and Query Projection using mathematical and logical expressions.\n* Default value to an attribute.\n* Inbuilt functions.\n* Renaming attributes.\n* Eval script allows Siddhi to process events using other programming languages (JavaScript, R and Scala) by defining functions by them.\n* And... virtually anything you want.\n\nYou can find the complete specification for the language on [WSO2's documentation site](https://docs.wso2.com/display/CEP410/SiddhiQL+Guide+3.0)\n\nYou can find more infomation about how redborder CEP works with Siddhi on the [siddhi wiki page](https://github.com/redBorder/cep/wiki/Siddhi).\n\n## Config\n\nYou will need a config file to specify the topics that will be read from kafka, the attributes that are part of the stream with its type, and a few other options like the zookeeper nodes, the kafka brokers and the REST URI that will be used to serve the REST API.\n\nFind more information about the config file on the [config file wiki page](https://github.com/redBorder/cep/wiki/Config-File)\n\n## Contributing\n\n1. [Fork it](https://github.com/redborder/cep/fork)\n2. Create your feature branch: `git checkout -b my-new-feature`\n3. Commit your changes: `git commit -m 'Add some feature'`\n4. Push to the branch: `git push origin my-new-feature`\n5. Create a new Pull Request\n\n## License\n\n[AGPL v3](http://www.gnu.org/licenses/agpl-3.0.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredborder%2Fcep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredborder%2Fcep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredborder%2Fcep/lists"}