Add a rough system diagram from my notebook
The entities represented I believe are the bare minimum number of services necessary to make things roughly work. The idea being that everything effectively orients around the eventbus, and "extensibility" means tuning into or publishing events rather than in-memory anything. Fixes #20
This commit is contained in:
parent
8b87fac83c
commit
f4397eb476
5
Makefile
5
Makefile
|
@ -12,7 +12,6 @@ SUB_DIRS=grammar
|
|||
|
||||
################################################################################
|
||||
## Phony targets
|
||||
|
||||
# Cute hack thanks to:
|
||||
# https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
|
||||
help: ## Display this help text
|
||||
|
@ -39,7 +38,9 @@ prereqs: scripts/prereqs.sh ## Check that this system has the necessary tools to
|
|||
clean: ## Clean all temporary/working files
|
||||
$(foreach dir, $(SUB_DIRS), $(MAKE) -C $(dir) $@)
|
||||
|
||||
diagram: system.png system.dot ## Generate the diagrams describing otto
|
||||
dot -Tpng -o system.png system.dot
|
||||
|
||||
################################################################################
|
||||
|
||||
|
||||
.PHONY: all build check clean depends lint swagger
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
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}
|
||||
}
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
Loading…
Reference in New Issue