-
Notifications
You must be signed in to change notification settings - Fork 1
/
graphviz_architecture.dot
38 lines (38 loc) · 1.26 KB
/
graphviz_architecture.dot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
digraph {
rankdir=TD
sync[label="Backups Server\n(Cloud/PC)" shape=house];
android[label="Android Kotlin" shape=Msquare];
ios[label="iOS Swift" shape=Msquare];
daemon[label="DWeb Backend Daemon"];
syncGroup[label="P2P Sync Group\n(Gossip via app calls)"];
peer[label="Other peers" shape=Msquare]
admin[label="Sync Admin\n(admin key pair)" shape=Msquare]
repo[label="Group Data\n(Veilid DHT Record)" shape=cylinder]
external[label="Others Data\n(Veilid DHT Record)" shape=folder]
personal[label="Personal Data Repo\n(Veilid DHT Record)" shape=folder]
vrpc[label="Veilid app calls"]
rpc[label="Inter-process RPC/FFI"]
daemon -> syncGroup;
android -> rpc;
ios -> rpc;
rpc -> daemon[label="Unix domain socket or FFI"];
peer -> syncGroup [label="Add archives"];
syncGroup -> peer[label="View, Replicate"];
sync -> syncGroup;
syncGroup -> sync;
admin -> vrpc[label="View/Remove Groups"];
{
rank=same;
daemon -> sync[style=dashed label="Code reuse"]
}
repo -> external;
repo -> personal;
daemon -> repo;
ios -> vrpc;
android -> vrpc;
vrpc -> sync[label="Veilid Route"];
{
rank=same;
external -> peer[style=dashed];
}
}