Tuesday, November 20, 2007

"The only motivation to use EP COTS is to cope with high performance requirements" - true or false ?

Somehow, I find myself using my collection of analysts' presentations to help me make some points, this time, I am showing a slide from Roy Schulte's presentation in the Gartner EPS summit - I'll return to the content of this slide shortly, but will start with some discussion I had yesterday about the reasons that enterprises are using COTS for event processing. I have heard (and not in the first time) the assertion - the only reason that one will want to use EP software and not hard-coded solution is the ability to cope with high throughput / low latency - in short, to deal with high performance requirements. If there are no high performance requirements there are other solutions, e.g. the database guys think that in this case one can insert all events to a database and use simple SQL queries for CEP patterns, or just using the good old C/Java programming for this purpose. This is somewhat inconsistent with my own experience, where customers that did not have "high performance" requirements were eager to use CEP technologies. Indeed, high performance is a reason to use CEP COTS, however, as indicated in Roy Schulte's slide above - it is actually a minor reason. According to Gartner, the high end is somewhere between 5-10 percent of the candidate applications, while looking at the prediction for 2012 - the use in the high end will be 8% - out of the 27% total use; note also that Roy Schulte defines the high end as 250 events per second, which is really far from the definition of "high performance", so the numbers are even lower. It seems that the market for "non high performance CEP" is much larger, and will grow faster. If that's so - where does the misconception that EP equals high performance always ? I think there are two sources - the first, the early adopters were from the capital markets industry, where some (not all !) of the candidate applications has indeed high performance characteristics. However, with the growth of the market, and use of EP software in other applications and other industries, these type of applications, while continue to grow, will not match the higher growth of non high performance applications. The other reason is that some vendors make the high performance as their main message, and trying to get the market believe that this is indeed the most important property.
So - if high performance is not the only reason to use EP COTS what are the other reasons to use EP COTS ? this is a matter for investigation, but IMHO the main one is the "high level programming" and agility - in short - the ability to reduce the Total Cost of Ownership.
I'll provide more insights about the TCO issue in a future post.


Hans said...

Very interesting. This also calls into question the time lag requirement. How much does the difference between instant and 30 minutes matter? Or 30 minutes versus data from yesterday.

If you ship physical products, for instance, then you may have many orders per minute but you really only care about detecting fraud in time to save costs associated with picking, packing and shipping.

Opher Etzion said...


This is an issue of "real-time" in the sense of what are the time constraint about getting an alert or doing an action. You are right that there is large variety, in some cases one needs to react in less than a second, and in other case - 30 minutes or 3 hours. I'll write another posting soon about -- different types of time constraints.

Anonymous said...

Hi Opher,

I have replied here:


Yours faithfully, Tim

Opher Etzion said...

Hello Tim.

This is starting to be an interesting discussion.

You raise a good point about the accuracy as an important point - and it seems that you agree that latency is not the one, so your claim is that "accuracy" is a major reason for using EP COTS and not hard coding the functionality ? can you say more about the relationship between the two ?



(put also as a comment to your blog)

Anonymous said...

Dear Opher,

I have replied here, but not as fully as I would have liked, due to schedule constraints this week:


Yours faithfully, Tim

david said...

Opher, perhaps you should put this on the Forum for discussion. There may be some COTS builders out there who'll have different answers. And my answers are ....

Unknown said...

There are even more reasons to use COTS than for performance reasons.

If customers have any hope of being able to make use of EP for higher value purposes, they must be able to rely on COTS to perform higher level management functions that can ultimately tie in the EP with other IT/business functions. A custom coded solution will be a hindrance.

For this to happen requires standards that customers can embrace which will reduce fear of vendor lock-in for basic functions, and allow for vendor innovation above the standards. The standards are also a useful vehicle for customer education.