From Srinath Perera’s answer via Quora:
I will try to give a description of current status (as of 2015) as opposed to a definition. If you are looking for a definition, the best would be What’s the Difference Between ESP and CEP?
As the above picture shows, technically CEP is a subset of Event Stream Processing. However, Stream processing engines and CEP engines are pretty different and they come from different background. Use cases they target and issues they choose to handle or not handle are different.
Stream processing engines let you create a processing graph, and inject events into the processing graph. Each operator processes and send events to next processors. In most Stream processing engines like Storm, S4, etc, users write code to create the operators, wire them up in a graph and run them. Then the engine runs the graph in parallel using many computers.
In contrast, CEP engines let users write queries using a higher level language such as a SQL like query language. They come from stock market related use cases where they generate a response within milliseconds. Also, CEP has build in operators such as time windows, temporal event sequences etc (see Patterns for Streaming Realtime Analytics).
Following are few common differences between the two types of engines found in practice ( I am generalizing, but they will help you to understand).
CEP engines were around for a long time. Their history goes back to 90’s (see CEP Market players – end of 2014 – from Paul Vincent). They were used in decent number of real world use cases. However, they were niche and expensive.
In the aftermath of Big Data taking off, people started to look for a streaming analytics solution that is like Hadoop. Storm was created at that time, and it is a Stream processing engine. It mirrored the MapReduce model, where you can write some code and attach it to a processing graph. It stole the limelight and outshone CEP solutions.
Meanwhile, CEP was pretty much excluded from the spot light. It is worth noting that analysts did not do that. For example, in this 2008 Gartner report CEP has been mentioned and CEP is mentioned ever since. (https://eventprocessing.wordpres…).
Now another trend, IoT, might bring CEP back into lime light. This is due to three main reasons.
Having said that, most IoT use cases would have very high event rates. So what ever event technology is used in those use cases needs to be able to scale up. This is something Stream processing does better than CEP. These two markets are merging and it is not clear which one will win in the yet.
Having said that, the differences are diminishing. IBM infosphere, which is a stream processing engine, have had CEP like operators for a long time. WSO2 CEP can now accept SQL like queries and runs on top of Apache Storm. SQL stream is a CEP engine that is highly parallel. My belief is that we will end up with a combination of both and we all will be better off for it