otto/system.dot

30 lines
1.1 KiB
Plaintext

digraph {
label="Otto system design";
node[shape="box", style="rounded"]
node[shape="box", style="square"]
orchestrator; frontend; datastore; objectstore; webhooks; agents;
node[shape="parallelogram", style=""]
eventbus;
webhooks -> eventbus[color="blue", label="write events"];
eventbus -> frontend[color="red", label="subscribe to live updates"];
orchestrator -> datastore[color="blue", label="create runs"];
orchestrator -> eventbus[color="purple", dir="both", label="read/write events"];
orchestrator -> agents[color="purple", dir="both", label="create and control agents"];
agents -> eventbus[color="blue", label="write events"];
agents -> datastore[color="blue", label="persist results"];
agents -> objectstore[color="blue", label="archive artifacts"];
datastore -> frontend[color="red", label="read runs"];
objectstore -> frontend[color="red", label="read artifacts"];
objectstore -> agents[color="red", label="fetch artifacts/stashes"];
//{rank=same; orchestrator agents eventbus}
//{rank=same; message input}
}