digraph G { initial[label="", shape="circle"]; pending[label="pending"]; done[label="done", shape="box"]; aborted[label="aborted", shape="box"]; aborting[label="aborting"]; failed[label="failed", shape="box"]; suspended[label="suspended", shape="box"]; deleted[label="deleted", shape="box"]; subgraph { rank = same; pending;suspended; } subgraph { rank = same; done; aborted; failed; } initial->pending; pending->suspended [color="blue",label="suspend"]; suspended->pending [color="blue",label="resume"]; suspended->deleted [color="blue",label="force-delete"]; pending->done [color="green",label="success"]; pending->failed [color="red",label="failure"]; pending->aborting [color="blue",label="abort"]; pending->aborted [color="blue",label="abort"]; pending->deleted [color="blue",label="cancel"]; aborting->aborted [color="green",label="success"]; aborting->failed [color="red",label="failure"]; failed->deleted [color="blue",label="delete"]; aborted->deleted [color="blue",label="delete"]; done->deleted [color="blue",label="delete"]; }