@startuml actor client node "Application Supervisor" as sup node Task.Supervisor as task node "ExTra.Server" as server node "loop_acceptor" as accept1 node "loop_acceptor" as accept2 component "ExTra.Command" as cmd node "ExTra.Dict" as dict collections "dictionaries" as dicts cloud "network" sup -right-> task sup -up--> dict sup -down--> server server <-down- network : "listen for new connections" server .right.> accept2 : "spawn new loop after first acceptor is occupied" task -> accept1 task -> accept2 dict <-up- dicts : "reads" client -up--> accept1 : "send command" accept1 -up-> cmd : "parse command" cmd <-up-> dict : "execute command" @enduml