@startuml
skinparam roundcorner 20
title Register rsync via Controller API
actor Admin
box "Distributed Application Scheduler\n(orchestrator)" #LightBlue
participant Controller_API
participant GRPC_Server_info
participant scheduler
end box
box "EMCO DB" #LightGreen
database mongo
end box
box "AppContext" #LightGreen
database etcd
end box
box "Resource Synchronizer\n(rsync)" #LightBlue
participant InstallAppAPI
end box
Admin -> Controller_API : POST rsync controller\nregistration information\n(Name:"rsync", Host, Port)
Controller_API -> mongo : Save rsync controller record
Controller_API -> GRPC_Server_info : add a GRPC connection\nto rsync server to\ninternal table
Controller_API -> Admin : Return
== Some time later - orchestrator\ncalls rsync to instantiate\nan application ==
|||
scheduler -> etcd : Prepares composite\napplication resources\nin AppContext
scheduler -> GRPC_Server_info : Retrieve gRPC connection\nto rsync from internal table
scheduler -> InstallAppAPI : GRPC InstallApp API call (AppContext identifier)
|||
@enduml |