digraph g {
graph [compound = true];
//presentation
splines = true;
overlap = false;
rankdir = TB;
generators [label="generators", shape="circle"];
providers [label="providers", shape="circle"];
processors [label="processors", shape="circle"];
subgraph cluster_persisters {
label="persisters";
persisters_filebuffer_reader [label="FileBufferPersistReader"]
persisters_filebuffer_writer [label="FileBufferPersistWriter"]
}
subgraph cluster_queues {
label="queues";
filebuffer [label="filebuffer"]
}
generators -> providers
providers -> processors
processors -> persisters_filebuffer_writer [label="StreamsDatum"]
persisters_filebuffer_reader -> processors [label="StreamsDatum[String]"]
persisters_filebuffer_writer -> filebuffer
filebuffer -> persisters_filebuffer_reader
} |