I am looking for a CEP mechanism, but I do not know if any engine meets my requirements. My system needs to process several streams of event data and generate complex events, and this is exactly what is ideal for any CEP mechanism (ESPER, Drools).
I store all unprocessed events in a database (this is not part of CEP, but I do) and use rules (or continuous requests or something else) to create custom actions for complex events. But some of my rules depend on past events. For example: I could send a sensor every time my spouse arrives or leaves home, and if my car and my fashionable woman’s car are near my house, I receive a “Dangerous” SMS.
The problem is that when I restart the event processing service, I lose all information about the state of the system (is my wife at home?), And to restore it I need to replay events for an unknown period of time. The state of the system may depend not only on raw events, but also on complex events.
The same problem occurs when I need a report on complex events in the past. I have raw event data stored in a database and can generate these complex events that reproduce raw events, but I don’t know for what period I have to reproduce them.
At the same time, it is clear that for most rules, you can automatically find the number of events that must be processed from the past (or the time period for loading events to be processed) to restore the state of the system. If this action depends on my wife’s presence at home, the CEP should request the latest status change. If a report on complex events is requested, and a complex event depends on the average price for the previous period, all price change events for this period should be reproduced. And so on...
Should I miss something?
ivolk source share