Skip to main content

Lunar workflows

Workflows are the core objects of Lunar and they represent the task to be performed using one or more Lunar Components.

A workflow can be interpreted as a directed acyclic graph of components connected by dependencies (edges).

Workflow run

For every workflow run, a new process is created, and it also dynamically creates an isolated Python environment with all resources and libraries needed for the execution of every workflow component.

Workflow attributes

NameTypeDescription
idstrA unique identifier for the workflow. Automatically generated using uuid4().
user_idstrIdentifier for the user associated with this workflow. This is a required field.
namestrThe name of the workflow. This is a required field.
descriptionstrA description of the workflow. This is a required field.
versionOptional[str]The version of the workflow. Defaults to None.
componentsList[ComponentModel]A list of components included in the workflow. Defaults to an empty list.
dependenciesList[ComponentDependency]A list of dependencies between components. Defaults to an empty list.
timeoutintThe timeout duration for the workflow in seconds. Defaults to 3600.
invalid_errorsList[str]A list of validation error messages. Defaults to an empty list.