digraph ci { gerrit [label="gerrit"]; gerrit [shape="folder"]; gerrit [fillcolor="white" style="filled"]; controller [label="CI controller"]; controller [shape="box"]; controller [fillcolor="pink" style="filled"]; vcs_worker [label="VCS worker"]; vcs_worker [shape="ellipse"]; vcs_worker [fillcolor="grey" style="filled"]; build_worker [label="build worker"]; build_worker [shape="ellipse"]; build_worker [fillcolor="grey" style="filled"]; deployment_worker [label="deployment worker"]; deployment_worker [shape="ellipse"]; deployment_worker [fillcolor="grey" style="filled"]; artifacts [label="artifact store"]; artifacts [shape="cylinder"]; artifacts [fillcolor="pink" style="filled"]; logs [label="log store"]; logs [shape="cylinder"]; logs [fillcolor="pink" style="filled"]; test_env [label="test\nenvironment"]; test_env [shape="octagon"]; test_env [fillcolor="grey" style="filled"]; prod_env [label="production\nenvironment"]; prod_env [shape="doubleoctagon"]; prod_env [fillcolor="white" style="filled"]; gerrit -> controller; controller -> vcs_worker; gerrit -> vcs_worker; vcs_worker -> gerrit; vcs_worker -> artifacts; controller -> build_worker; artifacts -> build_worker; build_worker -> artifacts; build_worker -> logs; build_worker -> test_env; vcs_worker -> logs; controller -> deployment_worker; artifacts -> deployment_worker; deployment_worker -> logs; deployment_worker -> test_env; deployment_worker -> prod_env; }