Event Streams and Event Clouds Revisited

May 17, 2007

Posted by: Tim Bass

Earlier on Yahoo! CEP-Interest we discussed events streams and event clouds in the context of POSETS. This discussion was in two parts; Part I, Clouds (Partially Order Sets) – Streams (Linearly Ordered Sets) and Part II: Clouds (Partially Order Sets) – Streams (Linearly Ordered Sets). I encourage you to review the posts if you are interested in understanding the underlying theory behind event steams and event clouds.

In addition, the draft event processing glossary I mentioned in an early post has definitions of event clouds and event streams, as follows:

Event stream: a linearly ordered sequence of events.

Notes: Usually, streams are ordered by time, e.g., arrival time. An event stream may be bounded by a certain time interval or other criteria (content, space, source), or be open ended and unbounded. A stream may contain events of many different types.

Event cloud: a partially ordered set of events (poset), either bounded or unbounded, where the partial orderings are imposed by the causal, timing and other relationships between the events.

Notes: Typically an event cloud is created by the events produced by one or more distributed systems. An event cloud may contain many event types, event streams and event channels. The difference between a cloud and a stream is that there is no event relationship that totally orders the events in a cloud. A stream is a cloud, but the converse is not necessarily true.

Note: CEP usually refers to event processing that assumes an event cloud as input, and thereby can make no assumptions about the arrival order of events.

However, there is a minor detail missing from the above definition of an event cloud which might lead to confusion, and that missing detail is related to the note, “the arrival order of events”. In this note, the reader could mistakenly come to the conclusion that a set of events that were TOSETS ordered by time when they were created, for example, become POSETS if they arrive at an event processing agent out-of-order.

For example, let us take a set of integers, 1 throught 10. This set of integers is a TOSET {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} (This set also happens to be a POSET.) Let’s us take this set of integers and place them in a box and shake them up a bit; and then take them out of the box one-by-one, with a blindfold on; the results are {5, 4, 1, 2, 8, 3, 10, 7, 6, 9}.

Is this set of integers still a POSET? (hint)

Is the set still a TOSET?

The answer to this basic question addresses, fundamentally, one of the issues with the wording of the note in the draft definition of event cloud (above). I will address this in a later post. Comments? Paris, what do you think?

Copyright © 2007 by Tim Bass, All Rights Reserved.