deployment, frontend updates
This commit is contained in:
76
docs/architecture/02-data-sync.dot
Normal file
76
docs/architecture/02-data-sync.dot
Normal file
@@ -0,0 +1,76 @@
|
||||
digraph DataSync {
|
||||
// Graph settings
|
||||
rankdir=LR;
|
||||
compound=true;
|
||||
fontname="Helvetica";
|
||||
node [fontname="Helvetica", fontsize=11];
|
||||
edge [fontname="Helvetica", fontsize=10];
|
||||
|
||||
// Title
|
||||
labelloc="t";
|
||||
label="Deskmeter - Change Streams Data Sync";
|
||||
fontsize=16;
|
||||
|
||||
// Styling
|
||||
node [shape=box, style="rounded,filled"];
|
||||
|
||||
// Local MongoDB
|
||||
subgraph cluster_local_mongo {
|
||||
label="Local MongoDB (Replica Set)";
|
||||
style=filled;
|
||||
color="#E8F5E9";
|
||||
fillcolor="#E8F5E9";
|
||||
|
||||
oplog [label="Oplog", fillcolor="#C8E6C9", shape=cylinder];
|
||||
|
||||
subgraph cluster_collections {
|
||||
label="Collections";
|
||||
style=dashed;
|
||||
color="#388E3C";
|
||||
|
||||
switch_coll [label="switch\n(workspace events)", fillcolor="#DCEDC8"];
|
||||
task_coll [label="task\n(current tasks)", fillcolor="#DCEDC8"];
|
||||
state_coll [label="state\n(current state)", fillcolor="#DCEDC8"];
|
||||
history_coll [label="task_history\n(path cache)", fillcolor="#DCEDC8"];
|
||||
}
|
||||
}
|
||||
|
||||
// dmsync daemon
|
||||
subgraph cluster_dmsync {
|
||||
label="dmsync Daemon";
|
||||
style=filled;
|
||||
color="#F3E5F5";
|
||||
fillcolor="#F3E5F5";
|
||||
|
||||
watcher [label="Change Stream\nWatcher", fillcolor="#E1BEE7"];
|
||||
resume_token [label="Resume Token\n(~/.dmsync-resume-token)", fillcolor="#E1BEE7", shape=note];
|
||||
}
|
||||
|
||||
// Remote MongoDB
|
||||
subgraph cluster_remote_mongo {
|
||||
label="Remote MongoDB (Docker)";
|
||||
style=filled;
|
||||
color="#FFF3E0";
|
||||
fillcolor="#FFF3E0";
|
||||
|
||||
remote_switch [label="switch", fillcolor="#FFE0B2"];
|
||||
remote_task [label="task", fillcolor="#FFE0B2"];
|
||||
remote_state [label="state", fillcolor="#FFE0B2"];
|
||||
remote_history [label="task_history", fillcolor="#FFE0B2"];
|
||||
}
|
||||
|
||||
// Flow
|
||||
switch_coll -> oplog [style=invis];
|
||||
task_coll -> oplog [style=invis];
|
||||
state_coll -> oplog [style=invis];
|
||||
history_coll -> oplog [style=invis];
|
||||
|
||||
oplog -> watcher [label="watch()", color="#7B1FA2", style=bold];
|
||||
watcher -> resume_token [label="persist", color="#666", style=dashed];
|
||||
resume_token -> watcher [label="resume_after", color="#666", style=dashed];
|
||||
|
||||
watcher -> remote_switch [label="upsert", color="#F57C00"];
|
||||
watcher -> remote_task [label="upsert", color="#F57C00"];
|
||||
watcher -> remote_state [label="upsert", color="#F57C00"];
|
||||
watcher -> remote_history [label="upsert", color="#F57C00"];
|
||||
}
|
||||
Reference in New Issue
Block a user