Event IO Logical Model

From RuleCore Support

Jump to: navigation, search

Contents

Components

Event Inputs

An Event Input receives all or a sub-set of the events from one or more sources. Each event input is a contributor to the Inbound Events stream.

Event Validator

The Event Validator makes basic format and syntax checks on the inbound event messages. Events that are well-formatted and parsable XMLs are forwarded to the Valid Events Stream. Events that fail the checks are instead forwarded to the Invalid Events Stream.

Event Access Control

Events that are received are checked for having the correct security token, matching the ID of the running Event IO/ruleCore engine instance. Events that contain the correct token are forwarded to the Authorized Events stream. Events that fail the checks are sent to the Access Error stream.

Event Sequencer

Operating inside a distributed and heterogeneous environment usually implies the use of several unsynchronized time sources and varying event transmission times. As a result of this, events arriving at the Event I/O module will in nearly all cases not be picked up in the same order as they were originally emitted.

The ruleCore engine imposes one unconditional requirement on the inbound event stream, namely, that all events in the stream are arranged in order by ascending time.

To allow for receiving events from unsynchronized event sources, an Event Sequencer is introduced. The Event Sequencer makes sure the requirement of an ordered event stream is fulfilled at all times by putting the incoming events on hold for a certain amount of time before releasing them to the ruleCore engine. The maximum amount of time for which the event is put on hold is a configurable parameter, making it easy to adapt the sequencing to the particular operating environment.

Incoming events whose timestamp is older than the maximum age are instantly rejected. Incoming events with a timestamp in the future may or may not be kept for sequencing, this is a configurable option.

The effect of using the Event Sequencer is hence twofold;

  • events will be forwarded to the ruleCore engine in order of ascending time
  • events arriving at the ruleCore engine will be delayed by the predefined amount of time

Event Streams

Inbound Events

This event stream contains events received from the Event Inputs (external systems), in no particular order but on ruleCore event format.

Valid Events

This event stream contains the output from the event validator, i.e. events picked up from here are well-formatted XMLs.

Authorized Events

When an event has been considered to be authorized for further processing it is put on this event stream.

Ordered Event Stream

This is the "final" event stream, containing events ordered by increasing timestamp. The ruleCore engine is fed with events from this event stream.

Outbound Events

This event stream contains events that have been received from the ruleCore engine and should be forwarded to external systems.

Invalid Events

This stream contains events that did not pass the Event Validator checks.

User Errors

This stream contains exception events that are generated as a result of some (non-critical and most likely, user related) failure during processing of a user event.

System Errors

This event stream contains exception events that are generated as a result of a serious processing error.

Access Errors

This event stream contains the events that did not pass the Event Access Control.