Skip to content
Nadeem Mohammad edited this page Nov 26, 2018 · 30 revisions

Level 0

Dexecutor Works with 5 components, of which 2 has to be provided by client (Executor Service, Task Provider), 1 (Graph) is internally created, and the rest of the 2 (Traversar [for printing the graph] and Validator [for validating the constructed graph]) are optional (Uses system default if not provided by client)

Dexecutor Level 0

Graph

A graph is a collection of nodes with edges describing relationship among them

A Node

A node has a set of incoming and outgoing edges Dexecutor Node

Graph is used by Dexecutor to represent task relationship and dependencies among tasks, to do this Dexecutor uses very minimal information (Unique ID) to construct nodes.

Task Provider

After the graph construction is done, when it comes to tasks execution, Dexecutor would consult TaskProvider to fetch the task and execute at that time.

Execution Engine

Execution Engine is where the tasks would run, Default implementation works with Java's Executor Service, However it can be easily extended to run in any (distributed) environment,

Validator

A Validator validates the graph for correctness after its construction, for example checking for cyclic relationship.

Traversar

A Traversar comes handy if would like to see how the graph is constructed, for example you would do level order traversal to print the graph

Level 1

Clients would be directly/indirectly interacting with this components through Dexecutor API

Dexecutor Level One

Here is simplified process Dexecutor Sequence I.png

Here is little more detailed one

Dexecutor Sequence II.png

Clone this wiki locally