diff --git a/docs/my-website/docs/proxy/high_availability_control_plane.md b/docs/my-website/docs/proxy/high_availability_control_plane.md
index 324fba3a180..4cc6d2952fb 100644
--- a/docs/my-website/docs/proxy/high_availability_control_plane.md
+++ b/docs/my-website/docs/proxy/high_availability_control_plane.md
@@ -42,9 +42,9 @@ The **High Availability Control Plane** takes a different approach:
-The **control plane** is a LiteLLM instance that serves the admin UI and knows about all the workers. It does not proxy LLM requests, it is purely for administration.
+The **control plane** is a LiteLLM instance that serves the admin UI and knows about all the workers. It is **not a router** — it does not proxy or route any LLM requests. It exists purely so admins can switch between workers and manage them from a single UI.
-Each **worker** is a fully independent LiteLLM proxy that handles LLM requests for its region or team. Workers have their own users, keys, teams, and budgets.
+Each **worker** is a fully independent LiteLLM proxy that handles LLM requests for its region or team. Workers have their own database, Redis, users, keys, teams, and budgets. No infrastructure is shared between workers.
## Setup
diff --git a/docs/my-website/src/components/ControlPlaneArchitecture/ControlPlaneArchitecture.tsx b/docs/my-website/src/components/ControlPlaneArchitecture/ControlPlaneArchitecture.tsx
index 5cc41979b02..d296e0ce29f 100644
--- a/docs/my-website/src/components/ControlPlaneArchitecture/ControlPlaneArchitecture.tsx
+++ b/docs/my-website/src/components/ControlPlaneArchitecture/ControlPlaneArchitecture.tsx
@@ -3,23 +3,56 @@ import styles from './styles.module.css';
/* ────────────────────── Shared small pieces ────────────────────── */
-function InfraChip({ color, label }: { color: string; label: string }) {
- const dotClass =
+function InfraBox({ icon, label, color }: { icon: string; label: string; color: 'green' | 'blue' | 'orange' }) {
+ const colorClass =
color === 'green'
- ? styles.infraDotGreen
+ ? styles.infraBoxGreen
: color === 'blue'
- ? styles.infraDotBlue
- : styles.infraDotOrange;
+ ? styles.infraBoxBlue
+ : styles.infraBoxOrange;
return (
-
-
- {label}
-
+
+ {icon}
+ {label}
+
);
}
-/* ────────────────────── Architecture tab ────────────────────── */
+/* ────────────────────── Worker column with infra ────────────────────── */
+
+function WorkerColumn({
+ name,
+ region,
+ subtitle,
+ nodeClass,
+ badgeClass,
+}: {
+ name: string;
+ region: string;
+ subtitle: string;
+ nodeClass: string;
+ badgeClass: string;
+}) {
+ return (
+
+
+
+ {name}
+ {region}
+
+
{subtitle}
+
Handles LLM requests
+
+
+
+
+
+
+ );
+}
+
+/* ────────────────────── Architecture diagram ────────────────────── */
function ArchitectureView() {
return (
@@ -36,49 +69,41 @@ function ArchitectureView() {
Control Plane
- UI
+ ADMIN UI ONLY
cp.example.com
-
-
-
-
+
+ Not a router — does not proxy LLM requests.
+
+ Lets admins switch between workers to manage them.
- {/* Branch connector */}
-
-
-
+ {/* Branch connector with label */}
+
{/* Workers */}
-
-
- Worker A
- US East
-
-
worker-a.example.com
-
-
-
-
-
-
-
-
-
- Worker B
- EU West
-
-
worker-b.example.com
-
-
-
-
-
-
+
+
);
diff --git a/docs/my-website/src/components/ControlPlaneArchitecture/styles.module.css b/docs/my-website/src/components/ControlPlaneArchitecture/styles.module.css
index 8400a8920e0..3084c5ad44a 100644
--- a/docs/my-website/src/components/ControlPlaneArchitecture/styles.module.css
+++ b/docs/my-website/src/components/ControlPlaneArchitecture/styles.module.css
@@ -284,45 +284,67 @@
color: var(--cp-purple);
}
-/* ── Infrastructure chips ── */
-.infraRow {
- display: flex;
- gap: 0.4rem;
- justify-content: center;
- flex-wrap: wrap;
- margin-top: 0.5rem;
+/* ── Node caption ── */
+.nodeCaption {
+ font-size: 0.72rem;
+ color: var(--cp-text-muted);
+ margin-top: 0.4rem;
+ line-height: 1.4;
+ font-style: italic;
}
-.infraChip {
+/* ── Infrastructure boxes (per-worker) ── */
+.infraStack {
+ display: flex;
+ flex-direction: column;
+ gap: 0.35rem;
+ margin-top: 0.5rem;
+ width: 100%;
+}
+
+.infraBox {
display: flex;
align-items: center;
- gap: 0.3rem;
- font-size: 0.7rem;
- font-weight: 500;
- color: var(--cp-text-secondary);
- background: var(--cp-infra-bg);
- border: 1px solid var(--cp-infra-border);
- border-radius: 6px;
- padding: 0.2rem 0.5rem;
+ gap: 0.5rem;
+ padding: 0.45rem 0.75rem;
+ border-radius: 8px;
+ border: 1.5px solid var(--cp-border);
+ background: var(--cp-card-bg);
}
-.infraDot {
- width: 6px;
- height: 6px;
- border-radius: 50%;
+.infraBoxGreen {
+ border-color: var(--cp-green);
+ background: var(--cp-green-light);
+}
+
+.infraBoxBlue {
+ border-color: var(--cp-accent);
+ background: var(--cp-accent-light);
+}
+
+.infraBoxOrange {
+ border-color: var(--cp-orange);
+ background: var(--cp-orange-light);
+}
+
+.infraBoxIcon {
+ font-size: 0.85rem;
flex-shrink: 0;
}
-.infraDotGreen {
- background: var(--cp-green);
+.infraBoxLabel {
+ font-size: 0.75rem;
+ font-weight: 600;
+ color: var(--cp-text);
}
-.infraDotBlue {
- background: var(--cp-accent);
-}
-
-.infraDotOrange {
- background: var(--cp-orange);
+/* ── Worker column (card + infra stack) ── */
+.workerColumn {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ min-width: 220px;
+ max-width: 260px;
}
/* ── Workers row ── */
@@ -333,6 +355,24 @@
flex-wrap: wrap;
}
+/* ── Connector with label ── */
+.connectorBranchLabeled {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 100%;
+ max-width: 700px;
+}
+
+.connectorLabel {
+ font-size: 0.7rem;
+ color: var(--cp-text-muted);
+ font-weight: 500;
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ margin-bottom: 0.25rem;
+}
+
/* ── Animated flow ── */
.flowLabel {
font-size: 0.7rem;
@@ -511,6 +551,16 @@
max-width: 260px;
}
+ .workerColumn {
+ min-width: auto;
+ width: 100%;
+ max-width: 280px;
+ }
+
+ .connectorBranchLabeled {
+ display: none;
+ }
+
.connectorBranch {
display: none;
}