photoncloud-monorepo/docs/component-dependencies-detailed.dot

174 lines
7.6 KiB
Text

digraph DetailedComponentDependencies {
rankdir=LR;
node [shape=box, style=rounded];
// Infrastructure Services
subgraph cluster_chainfire {
label="ChainFire (Distributed KV Store)";
style=dashed;
CF_Server [label="chainfire-server", fillcolor="#e1f5ff", style="filled"];
CF_Client [label="chainfire-client", fillcolor="#e1f5ff", style="filled"];
CF_Raft [label="chainfire-raft", fillcolor="#e1f5ff", style="filled"];
CF_Storage [label="chainfire-storage\n(RocksDB)", fillcolor="#e1f5ff", style="filled"];
CF_Server -> CF_Raft;
CF_Server -> CF_Storage;
CF_Client -> CF_Server [style=dashed, label="gRPC"];
}
subgraph cluster_flaredb {
label="FlareDB (Multi-Model Database\nFoundationDB-like)";
style=dashed;
FD_Server [label="flaredb-server", fillcolor="#e1f5ff", style="filled"];
FD_Client [label="flaredb-client", fillcolor="#e1f5ff", style="filled"];
FD_Raft [label="flaredb-raft\n(openraft)", fillcolor="#e1f5ff", style="filled"];
FD_Storage [label="flaredb-storage\n(RocksDB)\nKV Store Base", fillcolor="#e1f5ff", style="filled"];
FD_KV [label="KV APIs\n(Raw, CAS)", fillcolor="#e1f5ff", style="filled"];
FD_SQL [label="SQL Layer\n(sql-service)", fillcolor="#e1f5ff", style="filled"];
FD_Server -> FD_Raft;
FD_Server -> FD_Storage;
FD_Server -> FD_KV;
FD_Server -> FD_SQL;
FD_KV -> FD_Storage;
FD_SQL -> FD_Storage;
FD_Client -> FD_Server [style=dashed, label="gRPC"];
FD_Server -> CF_Client [style=dashed, label="uses"];
}
// Platform Services
subgraph cluster_iam {
label="IAM (Identity & Access)";
style=dashed;
IAM_Server [label="iam-server", fillcolor="#fff4e1", style="filled"];
IAM_Client [label="iam-client", fillcolor="#fff4e1", style="filled"];
IAM_Store [label="iam-store", fillcolor="#fff4e1", style="filled"];
IAM_Server -> IAM_Store;
IAM_Server -> CF_Client [style=dashed];
IAM_Server -> FD_Client [style=dashed];
IAM_Client -> IAM_Server [style=dashed, label="gRPC"];
}
subgraph cluster_deployer {
label="Deployer (Provisioning)";
style=dashed;
DEP_Server [label="deployer-server", fillcolor="#fff4e1", style="filled"];
DEP_Types [label="deployer-types", fillcolor="#fff4e1", style="filled"];
DEP_Server -> DEP_Types;
DEP_Server -> CF_Client [style=dashed, label="storage"];
}
// Application Services
subgraph cluster_plasmavmc {
label="PlasmaVMC (VM Control)";
style=dashed;
PVMC_Server [label="plasmavmc-server", fillcolor="#e8f5e9", style="filled"];
PVMC_Hypervisor [label="plasmavmc-hypervisor", fillcolor="#e8f5e9", style="filled"];
PVMC_KVM [label="plasmavmc-kvm", fillcolor="#e8f5e9", style="filled"];
PVMC_FC [label="plasmavmc-firecracker", fillcolor="#e8f5e9", style="filled"];
PVMC_Server -> PVMC_Hypervisor;
PVMC_Hypervisor -> PVMC_KVM;
PVMC_Hypervisor -> PVMC_FC;
PVMC_Server -> CF_Client [style=dashed];
PVMC_Server -> FD_Client [style=dashed];
PVMC_Server -> IAM_Client [style=dashed];
}
subgraph cluster_prismnet {
label="PrismNET (SDN Controller)";
style=dashed;
PN_Server [label="prismnet-server", fillcolor="#e8f5e9", style="filled"];
PN_API [label="prismnet-api", fillcolor="#e8f5e9", style="filled"];
PN_Server -> PN_API;
PN_Server -> CF_Client [style=dashed];
}
subgraph cluster_k8shost {
label="K8sHost (K8s-like)";
style=dashed;
K8S_Server [label="k8shost-server", fillcolor="#e8f5e9", style="filled"];
K8S_Controllers [label="k8shost-controllers", fillcolor="#e8f5e9", style="filled"];
K8S_CNI [label="k8shost-cni", fillcolor="#e8f5e9", style="filled"];
K8S_CSI [label="k8shost-csi", fillcolor="#e8f5e9", style="filled"];
K8S_Server -> K8S_Controllers;
K8S_Server -> K8S_CNI;
K8S_Server -> K8S_CSI;
K8S_Server -> FD_Client [style=dashed];
K8S_Server -> IAM_Client [style=dashed];
K8S_Server -> PN_API [style=dashed];
}
subgraph cluster_other_apps {
label="Other Application Services";
style=dashed;
FlashDNS_Server [label="flashdns-server", fillcolor="#e8f5e9", style="filled"];
FiberLB_Server [label="fiberlb-server", fillcolor="#e8f5e9", style="filled"];
APIGateway_Server [label="apigateway-server", fillcolor="#e8f5e9", style="filled"];
LightningStor_Server [label="lightningstor-server", fillcolor="#e8f5e9", style="filled"];
NightLight_Server [label="nightlight-server", fillcolor="#e8f5e9", style="filled"];
CreditService_Server [label="creditservice-server", fillcolor="#e8f5e9", style="filled"];
FlashDNS_Server -> CF_Client [style=dashed];
FlashDNS_Server -> FD_Client [style=dashed];
FiberLB_Server -> CF_Client [style=dashed];
FiberLB_Server -> FD_Client [style=dashed];
APIGateway_Server -> FiberLB_Server [style=dashed, label="fronted by"];
APIGateway_Server -> IAM_Client [style=dashed, label="auth"];
APIGateway_Server -> CreditService_Server [style=dashed, label="billing"];
LightningStor_Server -> CF_Client [style=dashed];
LightningStor_Server -> FD_Client [style=dashed];
CreditService_Server -> CF_Client [style=dashed];
}
// Deployment Components
subgraph cluster_nixos {
label="NixOS Deployment";
style=dashed;
NixModules [label="NixOS Modules\n(nix/modules/)", fillcolor="#f3e5f5", style="filled"];
Netboot [label="Netboot Images\n(nix/images/)", fillcolor="#f3e5f5", style="filled"];
ISO [label="Bootstrap ISO\n(nix/iso/)", fillcolor="#f3e5f5", style="filled"];
FirstBoot [label="First-Boot Automation\n(first-boot-automation.nix)", fillcolor="#f3e5f5", style="filled"];
ClusterConfig [label="Cluster Config\n(plasmacloud-cluster.nix)", fillcolor="#f3e5f5", style="filled"];
NixNOS_Topo [label="Nix-NOS Topology\n(nix-nos/topology.nix)", fillcolor="#f3e5f5", style="filled"];
Netboot -> NixModules;
ISO -> NixModules;
ISO -> DEP_Server [style=dashed, label="phone-home"];
FirstBoot -> NixModules;
FirstBoot -> CF_Server [style=dashed, label="cluster-join"];
FirstBoot -> FD_Server [style=dashed, label="cluster-join"];
ClusterConfig -> NixModules;
NixNOS_Topo -> ClusterConfig;
}
// Service dependencies (runtime)
FD_Server -> CF_Server [label="systemd:after", color=red, style=dotted];
IAM_Server -> FD_Server [label="systemd:after", color=red, style=dotted];
PVMC_Server -> CF_Server [label="systemd:requires", color=red, style=dotted];
PVMC_Server -> FD_Server [label="systemd:requires", color=red, style=dotted];
PVMC_Server -> IAM_Server [label="systemd:requires", color=red, style=dotted];
K8S_Server -> IAM_Server [label="systemd:requires", color=red, style=dotted];
K8S_Server -> FD_Server [label="systemd:requires", color=red, style=dotted];
K8S_Server -> PN_Server [label="systemd:requires", color=red, style=dotted];
// Application integrations
PVMC_Server -> PN_API [style=dashed, label="networking", color=orange];
K8S_Server -> PN_API [style=dashed, label="CNI", color=orange];
// Styling
edge [color=blue];
}