Question

I want to learn more on how to build CEP based applications. So I looked around and found several products (overview found here: http://rulecore.com/CEPblog/?page_id=47).

But as there are quite a few at the moment, I don't know which is the best to start with. And overall I just would consider the one available for free. The rest is a bit to expensive for just private use ;)

Esper is for free, but without Esper studio it seems quite tedious to develop a cep app. Streambase offers a free trial, but I couldn't find out how long you can use this (if only for a month, no that helpful for longer research). Oracle CEP suite seems quite complete, but in the cep scene - as far as I can see - it is the least recognized compared to Esper or Streambase.

So do you have any hints on what is the best way to start with cep development? Is it worth to spent time on working through the oracle documenation or is it better to start with Esper or Streambase?

Cheers,

Andreas

Was it helpful?

Solution

The current CEP tools do not solve identical problems! So depending on what you like to do you'd like use different tools. In short, my personal choices would be:

For building data driven algorithms, coding in a type of SQL with extensions - The Coral8 engine from Aleri. Free for test and development (Was anyway before bought by Aleri)

For detecting event patterns (situations), no coding (declarative style) but configuration using XML - RuleCore, free test subscription to (Web)service

For a mix of both with low level control and coding in Java - Esper, GPL.

For creating data driven computation logic using graphical boxes-and-arrows style of GUI: StreamBase.

OTHER TIPS

Microsoft's CEP offering StreamInsight which closely resembles the reactive programming model of the Rx Framework and LINQ.

A Hitchhiker's Guide to StreamInsight Queries is a good place to start.

Some Code Examples

I would recommend using LINQPad which can connect to Stream Insight as a canvas for your queries.

I think the best choice is to compare the solutions that are freely available and then make something with them.

I'm not sure what your end goals are, if it's to learn a technology that you use at work or just to play around with something cool, but for me on a project like this, the deciding factor would be which tool can I use to make something I could share with the world.

In this case, my options would probably be Esper or OpenESB. That way, I could put the project on a resume (especially if I was applying for a job that used CEP tools) and share it with the world.

You could read the blog of Curt Monash (http://www.dbms2.com) , he writes about things like CEP.

would there be any interest in a free subscription to the ruleCore (Cloud, SaaS or whatever these are called today) Service? It would be running on smaller and less reliable (no cluster) hardware and probably only usable for testing out small low performance kind of things. If support@rulecore.com gets a couple of requests of this kind I'm sure it's put up onto the todo list...

For detecting event patterns I found that rulecore is pretty easy to use. I have only tried to detect patterns of low and medium complexity and that did work fine. It takes some time to get used to the concepts but is it actually a very small system so it was not that bad. And you need to like XML as everything is done using XML.

If you are trying to create a trading application then StreamBase would be better. But for monitoring stuff rulecore feels better.

If you have continuous streams (market feeds, IoT sensors, Twitter, news, etc), then stream processing technology is the right choice for you. Stream processing / streaming analytics is only a part of different CEP solutions (streams, rules, patterns, etc.).

There are several open source options for stream processing in the meantime, e.g. Apache Storm, Apache Spark or Apache Samza, but also powerful proprietary products such as IBM InfoSphere Streams, TIBCO StreamBase or Software AG's Apama.

Take a look at my blog post respectively article for more details about different stream processing and streaming analytics solutions (open source and proprietary):

Comparison of Stream Processing and Streaming Analytics Alternatives (Apache Storm, Spark, IBM InfoSphere Streams, TIBCO StreamBase, Software AG Apama)

i would start with the free trial of Aleri Coral8 (currently Sybase)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top