2008-09-29T13:43:00.009+03:00
In this Blog posting I'll touch upon an issue that requires some attention to the exact semantics.
I'll introduce the topic today -- wait a few days to see if there are comments - and then post the analysis of this case.
Given the simple application shown below:
Let's explain this simple example, since I would like to concentrate on a single issue, I'll simplify all other things to eliminate any noise.
- There is a single event source (so no clock synchronization issues) which generates events of three types e1, e2, e3.
- Let's also say that in our story there is a single events of each type that is published (so no synonyms issues), the table shows their occurrence time (when they occurred in reality) and detection time (when they have been reported to the system) - each of them has been reported 1 time unit after its occurrence, no re-ordering problem.
- Events e1, e2 serve as an input to an EPA of type "pattern detection" which detects a temporal sequence pattern "e1 before e2", and when this is detected, it derives an event e4 - some function of e1 and e2.
- Events e3 (raw event) and e4 (derived event) serve as input to another EPA of type "pattern detection" which again detects a temporal sequences pattern "e3 before e4", if this pattern is detected - create event e5 which triggers some action in the consumer.
The question is -- given the above - will the action triggered by e5 occur?, i.e. will the pattern - "e3 before e4" will be evaluated to true.
Before getting to the analysis -- I wonder what will be the results in current EP solutions:
- The action will always be triggered.
- The action will never be triggered.
- The behavior is non-deterministic (sometimes yes and sometimes no)
- Any other possibility (specify).
Please send it as a comment to this post, I'll publish an interesting analysis of this case next week.
Happy New Year.
Source...