digraph G { initial[label="", shape="circle"]; pending_download[label="pending(download)"]; suspended_download[label="suspended(download)", shape="box"]; pending_user[label="pending(user)", shape="box"]; pending_merge[label="pending(merge)"]; pending_merge_kyc[label="pending(merge-kyc)"]; suspended_merge_kyc[label="suspended(merge-kyc)", shape="box"]; pending_withdraw[label="pending(withdraw)"]; suspended_withdraw[label="suspended(withdraw)", shape="box"]; pending_withdraw_kyc[label="pending(withdraw-kyc)"]; suspended_withdraw_kyc[label="suspended(withdraw-kyc)", shape="box"]; pending_withdraw_aml[label="pending(withdraw-aml)"]; suspended_withdraw_aml[label="suspended(withdraw-aml)", shape="box"]; failed[label="failed", shape="box"]; done[label="done", shape="box"]; deleted[label="deleted", shape="box"]; subgraph { rank = same; pending_withdraw; failed; } initial->pending_download [color="blue", label="URI trigger"]; pending_download->suspended_download [color="blue", label="suspend"]; pending_download->pending_user; suspended_download->pending_download [color="blue", label="resume"]; suspended_download->deleted [color="blue", label="force-delete"]; pending_user->pending_merge [color="blue", label="accept"]; pending_user->deleted [color="blue", label="force-delete"]; pending_user->failed [label="timeout"]; pending_merge->pending_withdraw; pending_merge->pending_merge_kyc [label="kyc-required"]; pending_merge->failed [label="timeout"]; pending_merge->failed [color="red", label="failure"]; pending_merge_kyc->pending_merge [color="purple", label="poll-success"]; pending_merge_kyc->suspended_merge_kyc [color="blue", label="suspend"]; pending_merge_kyc->failed [label="timeout"]; suspended_merge_kyc->pending_merge_kyc [color="blue", label="resume"]; suspended_merge_kyc->deleted [color="blue", label="force-delete"]; suspended_merge_kyc->failed [label="timeout"]; pending_withdraw->pending_withdraw_kyc [label="kyc-required"]; pending_withdraw->pending_withdraw_aml [label="aml-required"]; pending_withdraw->done; pending_withdraw->suspended_withdraw [color="blue", label="suspend"]; pending_withdraw->failed [color="red", label="failure"]; suspended_withdraw->pending_withdraw [color="blue", label="resume"]; suspended_withdraw->deleted [color="blue", label="force-delete"]; pending_withdraw_kyc->suspended_withdraw_kyc [color="blue", label="suspend"]; pending_withdraw_kyc->pending_withdraw [color="purple", label="poll-success"]; suspended_withdraw_kyc->pending_withdraw_kyc [color="blue", label="resume"]; suspended_withdraw_kyc->deleted [color="blue", label="force-delete"]; pending_withdraw_aml->suspended_withdraw_aml [color="blue", label="suspend"]; pending_withdraw_aml->pending_withdraw [color="purple", label="poll-success"]; suspended_withdraw_aml->pending_withdraw_aml [color="blue", label="resume"]; suspended_withdraw_aml->deleted [color="blue", label="force-delete"]; failed->deleted [color="blue", label="delete"]; done->deleted [color="blue", label="delete"]; }