Saturday, December 15, 2007

On simple events and simple event processing


This is a picture I have borrowed from Siemens, however, I'll use it talking about simple events and simple event processing. There is a constant confusion around the terms "simple" (and "complex") here due to the ambiguity of the phrase: simple (complex) event processing - does it mean: processing of simple (or complex) events? or does it mean simple (or complex) processing in events. In this posting, I am drilling down to the simplicity notion.

Let's start with simple event - I prefer to contrast simple event with composite event where the contrast is in the structure - composite event is a collection of simple events and simple event is an atomic event, nothing said about the processing yet.

Now - is there different processing for simple events and composite events ? - in principle no - there are some functions on collections that are not applicable for atomic events, but if we take a collection of simple events that has not been concatenated we can apply the same processing for them.

Thus - my preference is to attach the simple to the processing and not to the event type, and define simple event processing as simple type of processing, no matter what the event structure is. What are the characteristics of simple event processing ?

  • processing is done on a single event - not looking on other events, but events are processed "one at a time".

  • only types of processing possible are: filtering and routing

  • filtering decides whether this event should be passed

  • routing decides to whom this event should be passed

Basic pub/sub with filtering is simple event processing.


ECA (Event-Condition-Action) rule is also simple event processing -- this does not say that the event cannot be derived/complex/composite - but regardless of the history of the event, its structure, the reason why it is created, and its source the ECA rule still performs a simple event processing, and processes one event at a time, where the condition provides filtering, and the action is indeed routing to somewhere to do this action.


Furthermore, in many cases, the "simple event processing" is a preamble to the event processing network done by the event producer, or post-processing done by the consumer, however, it can still be part of the Event Processing Network.


More related concepts - in the next postings.


1 comment:

Christoph said...

Interesting description about the difference of a simple event and a composite event.

I am just thinking about the article of Brenda M. Michelson: Event-Driven Architecture Overview (http://soa.omg.org/Uploaded%20Docs/EDA/bda2-2-06cc.pdf) where the three EDA processing styles are described.

Simple Event Processing
Event Stream Processing
Complex Event Processing

Is it possible to create a relation between the event types and the processing style?

Regards,

Christoph