digraph {
  rankdir = "LR"

  subgraph cluster_cvd_client {
    label = "cvd (client)"
    CvdClient
  }
  subgraph cluster_cvd_server {
    label = "cvd (server)"

    CvdServer
    CvdCommandHandler [style = "dashed"]

    Request [shape = "record", label = "<proxy> CvdCommandHandlerProxy | CommandSequenceExecutor | CvdLoadConfigsCommand | CommandSequenceExecutor | <start> CvdStartCommandHandler"]
  }
  launch_cvd

  CvdClient -> CvdServer [label = "AF_UNIX"]
  CvdServer -> CvdCommandHandler
  CvdCommandHandler -> Request:proxy
  Request:start -> launch_cvd [label = "fork/exec"]
}
