@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-scheduler" component disco as "oc-discovery" component agg as "oc-aggregator" component stat as "oc-status" component timetable as "oc-timetable" component monitor as "oc-monitor" 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 -- stat api -- timetable : get user or datacenter workflows execution plan workflow -- shed : schedule workflow mongo -- cat 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 cat -- disco : front for known peers agg -- net : front remote catalogs agg -- zn : front adisco rank results shed -- cat shed -- monitor : deploy and monitor workflow net -- disco : crawl IPFS for peers @enduml