Hi all,

Following diagram illustrates Siddhi Execution Architecture corresponding
to Siddhi 3.0.0 release.

​
1. ExecutionPlanRuntime
Corresponding run-time object for an ExecutionPlan. It will contain all
information to execute the corresponding ExecutionPlan. ExecutionPlanParser
will parse ExecutionPlan into an ExecutionPlanRuntime.

2. QueryRuntime
Corresponding run-time object for a Siddhi Query. QueryRuntime will contain
a StreamRuntime, QuerySelector and OutputRateLimiter. QueryParser is
responsible for parsing a given Query and creating QueryRuntime.

3. StreamRuntime
This interface corresponds to an Input stream of the Query. Inside each
StreamRuntime there is a StreamReciever, EventConstructor and Processor
chain. There are three sub-classes of StreamRuntime.

SingleStreamRuntime - Corresponds to SingleInputStream or
BasicSingleInputStream in Siddhi query API. Input streams other than joins
and patterns will contain into this.

JoinStreamRuntime - Corresponds to JoinInputStream. Internally this will
contain two SingleStreamRuntimes and special JoinProcessor to uphold join
semantics.

PatternStreamProcessor - Corresponds to PatternInputStream. Internally will
contain multiple SingleStreamRuntimes.

InputStreamParser is responsible for creating corresponding StreamRuntime.
In the process InputStreamParser utilizes SingleInputStreamParser which can
parse SingleInputStream or BasicSingleInputStream and create a
SingleStreamRuntime.

4. QuerySelector
Corresponds to selector portion of the query. Contains a list of
AttributeProcessors which will generate desired output attributes.
SelectorParser will create QuerySelector by parsing selector portion of the
query.

5. StreamReceiver
Initially events will be received to StreamReceiver which will forward the
events to EventConstructor. EventConstructor is responsible for
constructing suitable event for next execution stage referring
MetaStateEvent. Constructed event will then pass through a processor chain
where each processor corresponds to a StreamHandler. A processor can be any
of Filter, Window, etc.

Thanks,
Tishan
-- 
Tishan Dahanayakage
Software Engineer
WSO2, Inc.
Mobile:+94 716481328

Disclaimer: This communication may contain privileged or other confidential
information and is intended exclusively for the addressee/s. If you are not
the intended recipient/s, or believe that you may have received this
communication in error, please reply to the sender indicating that fact and
delete the copy you received and in addition, you should not print, copy,
re-transmit, disseminate, or otherwise use the information contained in
this communication. Internet communications cannot be guaranteed to be
timely, secure, error or virus-free. The sender does not accept liability
for any errors or omissions.
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to