76 lines
2.7 KiB
Plaintext
76 lines
2.7 KiB
Plaintext
digraph mpr_architecture {
|
|
rankdir=LR
|
|
bgcolor="#0a0e17"
|
|
fontname="Helvetica"
|
|
node [fontname="Helvetica" fontsize=11 style=filled color="#1e2a4a" fontcolor="#e8eaf0" shape=box]
|
|
edge [fontname="Helvetica" fontsize=9 fontcolor="#8892a8" color="#4a5568"]
|
|
|
|
label="System Architecture"
|
|
labelloc=t
|
|
fontsize=16
|
|
fontcolor="#0066ff"
|
|
|
|
subgraph cluster_browser {
|
|
label="Browser"
|
|
style=dashed
|
|
color="#1e2a4a"
|
|
fontcolor="#8892a8"
|
|
|
|
ui [label="detection-app\n(Vue 3 + @vue-flow)" fillcolor="#121829"]
|
|
wasm [label="OpenCV WASM\n(edge / field stages)" fillcolor="#1a1a3a" fontcolor="#0066ff"]
|
|
chunker [label="chunker UI\n(standalone test util)" fillcolor="#121829" fontcolor="#8892a8"]
|
|
}
|
|
|
|
subgraph cluster_k8s {
|
|
label="K8s cluster (Kind in dev)"
|
|
style=dashed
|
|
color="#0066ff"
|
|
fontcolor="#0066ff"
|
|
|
|
gateway [label="Envoy Gateway\nport 8080" fillcolor="#0d1a33" shape=octagon]
|
|
ui_pod [label="detection-ui pod\n(Vite :5175)" fillcolor="#121829"]
|
|
api [label="FastAPI\n:8702 /detect/*" fillcolor="#121829"]
|
|
|
|
subgraph cluster_data {
|
|
label="Data plane"
|
|
style=dashed
|
|
color="#1e2a4a"
|
|
fontcolor="#4a5568"
|
|
|
|
pg [label="PostgreSQL\njobs · profiles\ncheckpoints" fillcolor="#121829" shape=cylinder]
|
|
redis [label="Redis\n(SSE fan-out)" fillcolor="#121829" shape=cylinder]
|
|
minio [label="MinIO\nmedia · overlays" fillcolor="#121829" shape=cylinder]
|
|
}
|
|
}
|
|
|
|
subgraph cluster_gpu {
|
|
label="GPU host (LAN)"
|
|
style=dashed
|
|
color="#1e2a4a"
|
|
fontcolor="#8892a8"
|
|
|
|
gpu [label="inference server\nYOLO · OCR · VLM\nedge · field segmentation" fillcolor="#1a3a1a" fontcolor="#00c853" shape=box]
|
|
}
|
|
|
|
subgraph cluster_cloud {
|
|
label="Cloud VLM providers"
|
|
style=dashed
|
|
color="#1e2a4a"
|
|
fontcolor="#8892a8"
|
|
|
|
cloud [label="Anthropic · Gemini\nOpenAI · Groq" fillcolor="#243056" shape=octagon]
|
|
}
|
|
|
|
ui -> gateway [label="HTTP / SSE"]
|
|
chunker -> gateway [label="HTTP"]
|
|
ui -> wasm [label="worker" color="#0066ff"]
|
|
gateway -> ui_pod [label="/ /detection/*"]
|
|
gateway -> api [label="/api/*\n/api/detect/stream/*" color="#0066ff"]
|
|
api -> pg
|
|
api -> redis [label="publish events" style=dotted]
|
|
api -> minio [label="frames · overlays"]
|
|
api -> gpu [label="HTTP\nINFERENCE_URL" color="#00c853"]
|
|
api -> cloud [label="VLM escalation" style=dashed]
|
|
redis -> api [label="SSE consumer" style=dashed color="#8892a8"]
|
|
}
|