@startuml processing links in workflow participant graph as graph participant argoBuilder as argo entity list_branches as branches ' entity graph as argoGraph graph -> argo : create new argo file (graph) activate graph activate argo argo -> branches : identify each branches from graph activate branches branches --> argo : list of branches deactivate branches loop branch in branches loop link in branch argo -> argo : retrieve the computing component note right: a link is always made\n of a computing \nand a data source or \ndata storage component loop branch in branches group if component id has a previous computing component argo -> branches : get the name of previous computing branches --> argo : computing.Name + computing.ID argo -> argo : add list of dependencie to DagStep object end end group if other component is storage argo -> argo : retrieve the path argo -> argo : declare a volume in the argo format argo -> argo : add the created volume to computing as an output else argo -> argo : create a container to retrieve the data argo -> argo : mount a local folder in computing to share data note right: how do we make sure that\n the data is mounted in\na place where the computing\nknows it can find it ? end end end @enduml