You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
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
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