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]; }