Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between Actor Model Framework and Complex Event Processing (CEP)?

What is the difference between Actor Model Framework (e.g. Orleans) and Complex Event Processing (CEP) (e.g. Apache Storm) ?

Usage examples where each of these approaches are applicable (or one is more applicable than the other) would certainly be helpful.

like image 385
user1234883 Avatar asked Oct 01 '22 21:10

user1234883


2 Answers

Apache Storm is a distributed realtime computation system (source: project website).

CEP is Complex Event Processing, which is concerned with tracking and analyzing (processing) streams of information (data) about things that happen (events), and deriving a conclusion from them. (Source: Wiki)

They are two different things. Storm does not itself perform any analysis, unless you deploy your own code to perform said analysis. That makes YOUR code do CEP, not Storm. You can do CEP using Storm, or you can use JMS, or something else.

Actor-based frameworks, such as Akka or Orleans, are also candidates for hosting your custom event-analysis code performing CEP.

like image 73
user650839 Avatar answered Oct 03 '22 11:10

user650839


I'm not hugely familiar with the Actor Model, but from what I can gather it's a lower level, more general pattern than CEP.

CEP is also called event stream processing. It's typically about processing large, fast streams of data in real time. It's about spotting patterns in the data and acting on them, or enriching the data or (clever) filtering of the data.

You could use the Actor Model to implement a CEP engine, but it's not the only way of doing it. The Actor Model also appears to be applicable to things other than CEP.

like image 42
Stephen Darlington Avatar answered Oct 03 '22 11:10

Stephen Darlington