@startuml left to right direction component front as "oc-front" component api as "oc-api" component auth as "oc-auth" component cat as "oc-catalog" component workspace as "oc-workspace" component workflow as "oc-workflow" component shed as "oc-schedulerd" component disco as "oc-discovery" component agg as "oc-aggregator" component stat as "oc-statusd" component timetable as "oc-scheduler" component monitor as "oc-monitor" component peers as "oc-peers" component dc as "oc-datacenter" component monitor as "oc-monitord" cloud net as "Internet" database rd as "Nats" database zn as "Zinc" database mongo as "MongoDB" front -- api api -- auth : auth user api -- cat : local search api -- workspace : store user data api -- workflow api -- disco api -- agg : distributed search api -- timetable : get user or datacenter workflows execution plan api -- peers api--dc timetable -- shed : schedule workflow mongo -- cat mongo -- workspace mongo -- workflow mongo -- dc mongo -- timetable mongo -- peers mongo -- shed disco -- zn : front adisco rank peers on keywords disco -- rd : store discovered peers for monitoring stat -- net : check peer health stat -- rd : store peer health adisco connectivity stats peers -- disco : check for known peers peers--stat : check peer health agg -- net : front remote catalogs agg -- zn : front adisco rank results shed -- monitor : deploy and monitor workflow net -- disco : crawl IPFS for peers @enduml