@startuml
node Core {
    component "DB Client" as meta
    component "FS Client" as files
    component "Core API" as http
    component Extractor as extract
}

storage DFS
files <--> DFS

database DBMS
meta <--> DBMS

http <--> files
http <--> meta
http <-right- extract
extract <-down- files
extract <-down-> meta

node "Query Engine" as query
query <--> http

node "Public API" as api
api <-right-> query
api <--> http

cloud "Crawler, Dashboard, etc." as client <<Clients>>
client <--> api
@enduml
