Client¶
Client provides basic abstractions to users that would allow them to define tasks and DAGs based on their requests. Besides that, client also ensures connection to the director services of the system, and is responsible for presenting to the user an existing target infrastructure, user-based information (like running DAGs, etc.), ability to run experiments and receive results of the execution (including logs and artifacts). In addition to that, the client should also allow user to attach their own infrastructure to the director services. This should be done via providing instantiation information to the director services about access to this infrastructure
Functional requirements¶
Requirements are sorted by importance.
Client must provide common system program abstractions for Task/DAG creation
Client must allow user to connect to the director services, authenticate, and receive/present information about target infrastructure
Client must allow user to design Experiment and properly choose DAG implementations based on Node information
Client must allow user to run the Experiment
Client must provide user information about current experiments
Client must provide user a way to cancel experiments
Client must allow user to receive Experiment results (including logs and produced artifacts)
Client must allow user to manually send and receive events
Client must allow user to execute DAGs locally using dummy Environment on the localhost
Client must allow user to provide information about their own target infrastructure to attach to the existing system installation
Non-functional requirements¶
Client should correctly process all director services responds, including error information
Client should be lightweight and implemented as Python library without additional services or processes
Design¶
Client is a single monolithic Python library that provides needed classes for user’s needs. Basic abstraction classes (such as Task, DAG, Experiment, etc.) should be reimported from system-common package (that also would be used by core services, and executor)