@startuml participant main participant manager participant argo_builder participant oc_catalog activate main main -> manager : startManager(list_schedules) activate manager loop while true manager -> oc_catalog : get(/v1/schedule/) : \n @start time.Now() \n @end time.Now() + 1 hour oc_catalog --> manager : json schedule workflow manager -> manager : lock(list_workflows) end main -> manager : launch_exec(list_schedule) loop while list_schedule[0].time < time.Now() manager -> argo_builder : create_argo(workflow_name) argo_builder -> oc_catalog : get(/v1/workflow) :\n @name workflow_name oc_catalog --> argo_builder: workflow argo_builder -> argo_builder: create_argo argo_builder --> manager : true/false alt true manager -> manager : remove list_schedule[0] end end @enduml