digraph G { initial[label="", shape="circle"]; pending_query[label="query"]; //aborting_query[label="query", style=dashed]; //aborted_query[label="aborted", style=dashed, shape=box]; monolog_user[label="monolog(user)"]; pending_pickup[label="pickup"]; //aborting_pickup[label="pickup", style=dashed]; //aborted_pickup[label="aborted", style=dashed, shape=box]; done[label="done", shape="box"]; // subgraph { // rank=same; // pending_query; monolog_user; // } // subgraph { // rank=same; // done; // //aborted_pickup; aborted_query; // } initial -> pending_query; monolog_user -> pending_pickup [color=blue, label="OK"]; pending_query -> monolog_user [color=green]; //pending_query -> aborting_query; //aborting_query -> aborted_query; pending_pickup -> done [color=green]; //pending_pickup -> aborting_pickup; //aborting_pickup -> aborted_pickup; }