digraph decide {

node [shape=record;]
nativestack [label="Is the feature available in the native stack?"];
configurable [label="Do you need to make multiple connections with differing configurations?"];
systemwide [label="Do you need to switch a kernel option or other system wide configuation?"];
node [shape=record;fillcolor="yellow"; style="filled"]
sync [label="SynchronizedSpider"];
desync [label="DesynchronizedSpider"];
forge [label="ForgeSpider"];
single [label="SingleSpider"];
node [shape=circle, fixedsize=true; width=0.9;label="yes";fillcolor="green";style="filled"];
yes1; yes2; yes3;
node [label="no";fillcolor="red"; style="filled"];
no1; no2; no3;

nativestack -> yes1 -> configurable;
nativestack -> no1 -> forge;
configurable -> yes2 -> systemwide;
configurable -> no2 -> single;
systemwide -> yes3 -> sync;
systemwide -> no3 -> desync;

}
