digraph {
  browser [shape=rectangle]
  ldap [shape=rectangle]
  browser -> proxy [label=ui, dir="back"]
  browser -> proxy [label=measurements, dir="back"]
  browser -> proxy [label=metrics, dir="both"]
  browser -> proxy [label=pdf, dir="back"]
  proxy -> frontend [label=ui, dir="back"]
  proxy -> server [label=measurements, dir="back"]
  proxy -> server [label=metrics, dir="both"]
  server -> database [label=measurements, dir="both"]
  server -> database [label=metrics, dir="both"]
  collector -> server [label=measurements]
  server -> collector [label=metrics]
  collector -> source [label=measurements, dir="back"]
  proxy -> renderer [label=ui]
  proxy -> renderer [label=metrics]
  proxy -> renderer [label=measurements]
  renderer -> server [label=pdf]
  server -> proxy [label=pdf]
  browser -> proxy [label=credentials]
  proxy -> server [label=credentials]
  server -> ldap [label=credentials]
  source [label="{{1|2|3|...|n}|sources}" shape=record]
}
