Forum: Building VoltDB Applications

Post: Using VolrDB for Complex Event Processing (CEP)

Using VolrDB for Complex Event Processing (CEP)
Jul 8, 2015
I am not sure if this is a question for this "group" or if it should be in the Architecture "group". I'll start here and we'll see where I eventually end up.

So, having watched some of the videos on the web-site, especially the "H-Store/VoltDB architecture vs. CEP systems and newer streaming architectures", by John Hugg, Volt is "touted" as an alternative for CEP systems. Seeing that I have not done anything with VoltDB yet, I am a bit curious how something like that would be implemented: i.e. I can see how I can extremely fast query data in VoltDB. However, as far as I understand - in VoltDB - I would still be sending the query to the data, and the data would sit in memory. In a CEP system, my query would sit in memory and the data would travel through the query. So, in the VoltDB scenario, how would I do this? I.e. I am ingesting data extremely fast in VoltDB and I then want to know when - for example - a I have a pattern match; a sensor's temperature has increased three times in a row. In other words, as soon as I have ingested the data for the sensor the third time with a temperature increase, I want the query to give a result. My assumption is that if VoltDB is considering itself as a candidate for CEP replacement, this should be possible.


Jul 8, 2015
Hi Niels,

In your ingestion scenario you may craft a store procedure that queries the last two readings of the same sensor you are ingesting for. If all three of them are increases, then you may write to an alarm table, and/or to an export table backed by an alarm generating export connector (eg: REST call to Amazon SNS, Kafka, RabbitMQ)

Jul 9, 2015
Ah, thanks Stefano. Interesting idea.