digraph G{ subgraph cluster_1 { style=filled; color=lightgrey; node [style=filled,color=white]; REQUESTED_NEW -> SCHEDULED_DEPLOY [label="assign_host()"]; SCHEDULED_DEPLOY -> REQUESTED_START [label="create_vm()"]; label="ucloud-scheduler"; } subgraph cluster_2 { style=filled; color=lightgrey; node [style=filled,color=white]; REQUESTED_START -> RUNNING [label="start_vm()"] RUNNING -> SUSPENDED [label="REQUESTED_SUSPEND"] RUNNING -> RUNNING [label="REQUESTED_RESUME"] RUNNING -> SHUTDOWN [label="REQUESTED_SHUTDOWN"] SUSPENDED -> RUNNING [label="REQUESTED_RESUME"] } subgraph cluster_3 { style=filled; color=lightgrey; SCHEDULED_DEPLOY -> REQUESTED_NEW [label="Host Died"] REQUESTED_START -> KILLED [label="Host Died"] RUNNING -> KILLED [label="Host Died OR VM Died"] SUSPENDED -> KILLED [label="VM Died"] SHUTDOWN -> SHUTDOWN [label="VM Died"] label="ucloud-vm & ucloud-scheduler"; } }