1 \pgfdeclarelayer{background layer}
2 \pgfsetlayers{background layer,main}
5 \tikzstyle{getstyle}=[fill opacity=1,draw opacity=1]
6 \tikzstyle{programnode}=[minimum height=0.75cm, text width=1.8cm, text centered, draw=black,fill opacity=0.8];
7 \useasboundingbox (0,-4) rectangle (13,3);
8 \draw (2,1) node[name=mail_in,style=programnode,style=getstyle,anchor=west,fill=blue!60] {\small Mail In};
9 \draw (2,0) node[name=spamscan,style=programnode,style=getstyle,anchor=west,fill=green!60] {\small spamscan};
10 \draw (2,0) node[name=spam,style=programnode,style=getstyle,anchor=west,fill=red!60] {\small spam};
11 \draw (2,-1) node[name=processall,style=programnode,style=getstyle,anchor=west,fill=green!60] {\small processall};
12 \draw (0.75,-2) node[name=service,style=programnode,style=getstyle,anchor=west,fill=green!60] {\small service};
13 \draw (3.25,-2) node[name=process,style=programnode,style=getstyle,anchor=west,fill=green!60] {\small process};
14 \draw[style=getstyle,-stealth,line width = 1pt] (mail_in.-90) -- (spamscan.90);
15 \draw[style=getstyle,-stealth,line width = 1pt] (spamscan.-90) -- (processall.90);
16 \draw[style=getstyle,-stealth,line width = 1pt] (processall.-120) -- (service.60);
17 \draw[style=getstyle,-stealth,line width = 1pt] (processall.-60) -- (process.60);
19 \draw (5.5,-2) node[name=db-h,style=programnode,style=getstyle,anchor=west,fill=yellow!60] {\small db-h};
20 \draw[style=getstyle,-stealth,line width = 1pt] (process.-90) |- (6.4,-2.75) -- (db-h.-120);
21 \draw[style=getstyle,-stealth,line width = 1pt] (service.-90) |- (6.85,-3) -- (db-h.-60);
22 \draw (5,-0.5) node[name=updatesql,style=programnode,style=getstyle,text width=2.5cm,anchor=west,fill=green!60] {\small debbugs-updatesqlcache};
23 \draw[style=getstyle,-stealth,line width = 1pt] (db-h.90) -- (updatesql.-90);
24 \draw (5.5,1) node[name=cgi,style=programnode,style=getstyle,anchor=west,fill=blue!20] {\small cgi/...};
26 \draw (8,-2) node[name=loadsql,style=programnode,style=getstyle,anchor=west,fill=green!60] {\small debbugs-loadsql};
27 \draw[style=getstyle,-stealth,line width = 1pt] (db-h.0) -- (loadsql.180);
28 \draw (8,-2) node[name=loadsql,style=programnode,style=getstyle,anchor=west,fill=green!60] {\small debbugs-loadsql};
29 \draw[style=getstyle,-stealth,line width = 1pt] (db-h.0) -- (loadsql.180);
30 \draw (8,0) node[name=database,style=programnode,style=getstyle,anchor=west,fill=yellow!60] {\small Database};
31 \draw[style=getstyle,-stealth,line width = 1pt] (loadsql.90) -- (database.-90);
32 \draw[style=getstyle,-stealth,line width = 1pt] (updatesql.0) -- (database.-180);
33 \draw[style=getstyle,-stealth,line width = 1pt] (database.90) |- (cgi.0);
37 % Use only<>{} to get the above to change appropriately