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"]; 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"]; pending->done [color="green",label="success"]; pending->failed [color="red",label="error"]; pending->aborting [color="blue",label="abort"]; pending->aborted [color="blue",label="abort"]; aborting->aborted [color="green",label="success"]; aborting->failed [color="red",label="error"]; }