digraph cache_logic { nodesep=1.25; center=true; node[fontname="Lucida Sans Unicode",labelloc=c,margin=0.10,0.03] edge[fontname="Lucida Sans Unicode",fontcolor="#444444",labeldistance=20]; receive -> pass[label="uncacheable request",color=grey]; receive -> lookup[label="cacheable request"]; pass -> deliver[label="",color=grey]; lookup -> hit[label="fresh"]; lookup -> fetch[label="stale (needs validation)"]; lookup -> miss[label="uncached"]; hit -> deliver[label="sizzling"]; hit -> pass[label="bailing...",color=grey]; miss -> fetch[label=""]; miss -> pass[color=grey]; fetch -> store[label="cacheable"]; fetch -> deliver[label="not cacheable",color=grey]; store -> deliver[label="KTHX"]; }