> A vendor-neutral way to judge how ready your *network* is to serve AI inference at scale. Five levels, six dimensions. Find where you actually are, then decide the one investment that moves latency, resilience, or cost.
## Why this model exists
Most "AI infrastructure" conversations stop at GPUs and model serving. The network underneath, the thing that actually carries inference traffic across regions, into clusters, and between services, gets treated as plumbing right up until it causes an outage or blows a latency SLO.
Inference is unusually unforgiving of lazy networking. The p99 budgets are tight. A request stuck in the wrong place idles a $30k accelerator. Regional capacity is lumpy, and an inference session doesn't retry cleanly the way a stateless web GET does. I kept watching teams solve the GPU problem beautifully and then lose the latency they'd paid for somewhere between the load balancer and the pod.
So I wrote this down to answer three questions without flinching:
1. **Where are we, honestly?**
2. **What breaks next at this level?**
3. **What's the next dollar actually worth spending on?**
It's deliberately vendor-neutral. You can climb it on a hyperscaler's managed stack, on your own AS with BGP and eBPF, or some hybrid of the two. Each level names a capability, not a product you can buy your way into.
## The six dimensions
Score every level across the same six axes:
1. **Topology:** how regions and clusters sit relative to where demand is.
2. **Traffic steering:** how a request finds the right region or cluster.
3. **Failover:** how fast, and how cleanly, traffic leaves a degraded region.
4. **Observability:** what you can genuinely see about network and inference health.
5. **Security:** how east-west and north-south traffic gets authorized (your Zero Trust posture).
6. **Capacity and cost awareness:** whether routing reflects GPU capacity and dollars per request.
## The five levels
### L1: single region, best effort
One region, one entry point. "Healthy" means the process is up. No capacity or cost signal anywhere.
– **Failure mode:** any regional incident is a full outage, and everyone outside that region eats cross-continent tail latency the rest of the time.
– **Advance by:** standing up a second region and some way to send traffic to it.
### L2: multi-region, manual
More than one region, but steering is GeoDNS or a human, failover is TTL-bound (minutes, if you're lucky), and metrics are a few dashboards. Capacity gets balanced by hand.
– **Failure mode:** failover is far too slow for an inference SLO, clients cache and ignore your TTLs, and capacity hotspots stay invisible until they page someone at 2am.
– **Advance by:** wiring real health into steering so failover happens automatically, in seconds.
### L3: health-aware routing
Anycast plus BGP, or a global load balancer, with **SLO-based** health integration. Routes get withdrawn on real latency or queue-depth breaches, failover lands in seconds, and observability is per-region rather than global-average. (A well-run [BGP multi-region design](/bgp-for-the-ai-era-multi-region-routing-for-inference-workloads/) lives here.)
– **Failure mode:** routing knows healthy from unhealthy, but nothing about how much capacity is left or what it costs. It will happily steer a flood into a healthy region that is one request from saturation, or into your most expensive one.
– **Advance by:** feeding capacity and cost signals into steering, and closing the east-west security gaps you have been ignoring.
### L4: capacity- and cost-aware, secured
Steering weighs GPU capacity, queue depth, and dollars per request, not just latency and liveness. East-west traffic runs under **Zero Trust** enforcement, and [eBPF-level observability](/category/cloud-platform-networking/) gives you kernel-accurate visibility without a sidecar tax. Withdrawal and rebalancing are automated.
– **Failure mode:** the optimization is still reactive and rule-based. Humans own the thresholds, and the ugly cases (correlated demand spikes across regions at once) still need someone to step in.
– **Advance by:** closing the loop, so the system optimizes against SLO and cost objectives on its own.
### L5: autonomous, self-optimizing
A closed control loop continuously tunes traffic, capacity, and placement against latency SLOs and cost per token. Active-active across regions with predictive scaling. When something goes wrong it degrades gracefully, shedding load or downshifting the model tier, instead of falling over. Security is policy-as-code with a full audit trail, and capacity and cost are first-class routing inputs.
– **Failure mode:** the risks are second-order now. Control-loop stability, telemetry and model drift, over-automation. These are the problems of a mature system, not a fragile one.
– **Advance by:** hardening the control loop itself. This is the frontier, and there is no tidy next rung.
## Summary matrix
| Dimension | L1 Best-Effort | L2 Manual Multi-Region | L3 Health-Aware | L4 Capacity/Cost-Aware + Secure | L5 Autonomous |
|—|—|—|—|—|—|
| **Topology** | Single region | Few regions, static | Regions near demand | Demand-driven placement | Predictive, active-active |
| **Steering** | Single entry | GeoDNS / manual | Anycast+BGP / global LB, SLO health | + capacity and cost weighting | Closed-loop optimization |
| **Failover** | None (outage) | Minutes (TTL-bound) | Seconds (health-triggered) | Seconds + auto-rebalance | Predictive / pre-emptive |
| **Observability** | Liveness only | Basic dashboards | Per-region SLO metrics | eBPF kernel-level, no blind spots | Telemetry drives control loop |
| **Security** | Perimeter/flat | Perimeter + some segmentation | Segmented, TLS | Zero-Trust east-west enforcement | Policy-as-code, full audit |
| **Capacity/Cost** | None | Manual | Health only (not capacity) | Capacity + $/req in routing | Continuous SLO/$ optimization |
## Quick self-assessment
Score each axis 1 to 5 and take the **lowest**, not the average. An inference network behaves like its weakest dimension, not its best one.
– [ ] Can we lose a whole region without a user-visible outage? (Failover at L3 or better)
– [ ] Does traffic leave a degraded region in seconds, on its own? (Steering at L3 or better)
– [ ] Do we route on real inference SLOs, not just "the port is open"? (Observability at L3 or better)
– [ ] Does routing know each region's GPU capacity and cost? (Capacity at L4 or better)
– [ ] Is east-west inference traffic authorized, rather than implicitly trusted? (Security at L4 or better)
Most teams running AI in production right now sit at L2 to L3. Getting from L2 to L3 is what removes the outages. L3 to L4 is what removes the waste and closes the security gaps. Neither is a research project; both are things you can scope, fund, and ship this quarter.
## How to use this
– **Architects and leads:** locate your level per dimension, find the single weakest axis, and fund that one. Do not spread the budget evenly.
– **Interviews and reviews:** a shared vocabulary for "how mature is our inference network," instead of everyone arguing from a different definition.
– **Vendors and tools:** map what a product claims to the capability it actually delivers, not the tier its marketing puts it in.
*Cite as: Kafedzhy, V. "The AI Inference Networking Maturity Model." vkafed.com.*
## Related
– [AI Infrastructure Networking](/category/ai-infrastructure-networking/): the pillar this anchors
– [BGP for the AI Era](/bgp-for-the-ai-era-multi-region-routing-for-inference-workloads/): the L3 routing layer in depth
– [Zero Trust Networking Reference Architecture](/category/zero-trust-platform-security/): the L4 security dimension
A vendor-neutral way to judge how ready your network is to serve AI inference at scale. Five levels, six dimensions. Find where you actually are, then decide the one investment that moves latency, resilience, or cost.
Why this model exists
Most "AI infrastructure" conversations stop at GPUs and model serving. The network underneath, the thing that actually carries inference traffic across regions, into clusters, and between services, gets treated as plumbing right up until it causes an outage or blows a latency SLO.
Inference is unusually unforgiving of lazy networking. The p99 budgets are tight. A request stuck in the wrong place idles a $30k accelerator. Regional capacity is lumpy, and an inference session doesn’t retry cleanly the way a stateless web GET does. I kept watching teams solve the GPU problem beautifully and then lose the latency they’d paid for somewhere between the load balancer and the pod.
So I wrote this down to answer three questions without flinching:
- Where are we, honestly?
- What breaks next at this level?
- What’s the next dollar actually worth spending on?
It’s deliberately vendor-neutral. You can climb it on a hyperscaler’s managed stack, on your own AS with BGP and eBPF, or some hybrid of the two. Each level names a capability, not a product you can buy your way into.
The six dimensions
Score every level across the same six axes:
- Topology: how regions and clusters sit relative to where demand is.
- Traffic steering: how a request finds the right region or cluster.
- Failover: how fast, and how cleanly, traffic leaves a degraded region.
- Observability: what you can genuinely see about network and inference health.
- Security: how east-west and north-south traffic gets authorized (your Zero Trust posture).
- Capacity and cost awareness: whether routing reflects GPU capacity and dollars per request.
The five levels
L1: single region, best effort
One region, one entry point. "Healthy" means the process is up. No capacity or cost signal anywhere.
- Failure mode: any regional incident is a full outage, and everyone outside that region eats cross-continent tail latency the rest of the time.
- Advance by: standing up a second region and some way to send traffic to it.
L2: multi-region, manual
More than one region, but steering is GeoDNS or a human, failover is TTL-bound (minutes, if you’re lucky), and metrics are a few dashboards. Capacity gets balanced by hand.
- Failure mode: failover is far too slow for an inference SLO, clients cache and ignore your TTLs, and capacity hotspots stay invisible until they page someone at 2am.
- Advance by: wiring real health into steering so failover happens automatically, in seconds.
L3: health-aware routing
Anycast plus BGP, or a global load balancer, with SLO-based health integration. Routes get withdrawn on real latency or queue-depth breaches, failover lands in seconds, and observability is per-region rather than global-average. (A well-run BGP multi-region design lives here.)
- Failure mode: routing knows healthy from unhealthy, but nothing about how much capacity is left or what it costs. It will happily steer a flood into a healthy region that is one request from saturation, or into your most expensive one.
- Advance by: feeding capacity and cost signals into steering, and closing the east-west security gaps you have been ignoring.
L4: capacity- and cost-aware, secured
Steering weighs GPU capacity, queue depth, and dollars per request, not just latency and liveness. East-west traffic runs under Zero Trust enforcement, and eBPF-level observability gives you kernel-accurate visibility without a sidecar tax. Withdrawal and rebalancing are automated.
- Failure mode: the optimization is still reactive and rule-based. Humans own the thresholds, and the ugly cases (correlated demand spikes across regions at once) still need someone to step in.
- Advance by: closing the loop, so the system optimizes against SLO and cost objectives on its own.
L5: autonomous, self-optimizing
A closed control loop continuously tunes traffic, capacity, and placement against latency SLOs and cost per token. Active-active across regions with predictive scaling. When something goes wrong it degrades gracefully, shedding load or downshifting the model tier, instead of falling over. Security is policy-as-code with a full audit trail, and capacity and cost are first-class routing inputs.
- Failure mode: the risks are second-order now. Control-loop stability, telemetry and model drift, over-automation. These are the problems of a mature system, not a fragile one.
- Advance by: hardening the control loop itself. This is the frontier, and there is no tidy next rung.
Summary matrix
| Dimension |
L1 Best-Effort |
L2 Manual Multi-Region |
L3 Health-Aware |
L4 Capacity/Cost-Aware + Secure |
L5 Autonomous |
| Topology |
Single region |
Few regions, static |
Regions near demand |
Demand-driven placement |
Predictive, active-active |
| Steering |
Single entry |
GeoDNS / manual |
Anycast+BGP / global LB, SLO health |
+ capacity and cost weighting |
Closed-loop optimization |
| Failover |
None (outage) |
Minutes (TTL-bound) |
Seconds (health-triggered) |
Seconds + auto-rebalance |
Predictive / pre-emptive |
| Observability |
Liveness only |
Basic dashboards |
Per-region SLO metrics |
eBPF kernel-level, no blind spots |
Telemetry drives control loop |
| Security |
Perimeter/flat |
Perimeter + some segmentation |
Segmented, TLS |
Zero-Trust east-west enforcement |
Policy-as-code, full audit |
| Capacity/Cost |
None |
Manual |
Health only (not capacity) |
Capacity + $/req in routing |
Continuous SLO/$ optimization |
Quick self-assessment
Score each axis 1 to 5 and take the lowest, not the average. An inference network behaves like its weakest dimension, not its best one.
Most teams running AI in production right now sit at L2 to L3. Getting from L2 to L3 is what removes the outages. L3 to L4 is what removes the waste and closes the security gaps. Neither is a research project; both are things you can scope, fund, and ship this quarter.
How to use this
- Architects and leads: locate your level per dimension, find the single weakest axis, and fund that one. Do not spread the budget evenly.
- Interviews and reviews: a shared vocabulary for "how mature is our inference network," instead of everyone arguing from a different definition.
- Vendors and tools: map what a product claims to the capability it actually delivers, not the tier its marketing puts it in.
Cite as: Kafedzhy, V. "The AI Inference Networking Maturity Model." vkafed.com.
Related