The following diagram summarizes how events are processed in a CEP event flow.

WSO2 CEP receives events from external event sources and data agents. These events have different formats such as XML, JSON, Map, Text, etc.

WSO2 CEP supports a range of event receiver types to receive events in different formats. Each event receiver receives the events in a specific format based on its type, and converts them to tuples which enable WSO2 CEP to process them.

The converted event tuples are forwarded to the event stream connected to the event receiver. Event tuples are associated with their respective event streams based on the event stream ID.

The event stream in turn forwards the events to the connected execution plan (i.e. the execution plan with queries that define the same event stream as the input stream). The events are also forwarded to the event publishers in order to be published in external systems.

An execution plan processes the events in the input event streams via Siddhi queries written in the Siddhi Query Language. The events produced via output streams after processing the Siddhi queries of the execution plan are forwarded back to the event streams.

WSO2 CEP supports a range of event publisher types to publish processed events in a range of interfaces which require different formats such as JMS, KAFKA, SOAP etc. Each publisher converts the events into a specific format depending on its type before publishing the events in the relevant interface. The interface in which events are published can be dashboards, external event sinks or data stores.

The components of the event flow described in the above summary are explained in detail in the following sections.