- llm-d is the Kubernetes-native routing brain for distributed LLM inference -- cache-aware scheduling, prefill/decode disaggregation, and multi-model orchestration.
- 1,000x throughput improvement in 9 months: from 45 tok/s (May 2025) to 50,000 tok/s on a 16x16 B200 topology (Feb 2026).
- CNCF Sandbox accepted at KubeCon Europe, March 2026 -- jointly donated by IBM Research, Red Hat, and Google Cloud.
- 13+ contributing organizations including NVIDIA, Intel, AMD, CoreWeave, UC Berkeley, and University of Chicago.
- 7 releases in 13 months, each attacking a different bottleneck: cache routing, disaggregation, cross-platform HW, speculative decoding, hierarchical offloading.
- What is next: multi-cluster federation, agentic inference patterns, cost-aware routing, and multi-modal inference.
The room in Amsterdam went quiet for a beat too long.
It was March 24, 2026. KubeCon Europe. Thousands of engineers packed into a convention hall that smelled like fresh carpet and stale conference coffee. The CNCF Technical Oversight Committee had just announced the latest batch of Sandbox acceptances. When the slide landed on llm-d, donated jointly by IBM Research, Red Hat, and Google Cloud, the reaction was not polite applause. It was the kind of murmur that ripples through a room when people realize they are witnessing a turning point.
Ten months. That is how long it took llm-d to go from a conference announcement at Red Hat Summit to acceptance into the most important open-source foundation in cloud-native computing. Ten months from "here is an idea" to "this belongs alongside Kubernetes and Prometheus." For a project born at the intersection of AI and infrastructure, two fields known for hype and broken promises, the speed was almost disorienting.
But the people in that room knew why. They had felt the pain firsthand. They had watched their organizations bleed money on GPU clusters that sat half-idle because no one had built the intelligence layer between the models and the hardware. They had jury-rigged load balancers that did not understand KV caches, autoscalers that did not know a prefill from a decode, and monitoring dashboards that treated a 70-billion-parameter model the same as a REST API endpoint.
llm-d did not just solve a technical problem. It solved their problem. And in thirteen months, it went from solving it in theory to solving it at 50,000 tokens per second.
This is the story of how that happened.
The Problem Nobody Was Solving #
Here is something that drove infrastructure teams quietly insane throughout 2024 and early 2025: serving a single LLM on a single GPU was a solved problem. vLLM had cracked it. PagedAttention was a genuine breakthrough: elegant, effective, and widely adopted. If you needed to run Llama on one box and serve requests, you were in great shape.
But nobody needed to run one model on one box.
Real organizations needed to serve dozens of models across hundreds of GPUs, with predictable latency, controllable costs, and the kind of operational reliability that lets you sleep through the night when your inference fleet is processing ten thousand concurrent requests. And for that problem (the production problem, the at-scale problem, the problem that actually costs money) the industry had nothing.
Think about what a load balancer sees when it routes an LLM inference request. It sees an HTTP request. It picks a backend pod. Round-robin, least-connections, maybe something weighted. The request lands on whichever pod was "next." For a stateless web service, this is fine.
For LLM inference, it is catastrophic.
Every LLM request builds a KV cache: the model's working memory for that conversation. When a request arrives at a pod that already has the relevant prefix cached from a previous request, the pod can skip the entire prefill computation. That is the most expensive phase of inference: every matrix multiplication, every attention computation, every layer of the transformer. A KV cache hit on the right pod can cut time-to-first-token by 80% or more. Route that same request to a random pod, and you pay the full cost again from scratch.
This was not a load-balancing problem. It was a cache topology problem. And nobody's load balancer understood cache topology.
It got worse. LLM inference has two distinct computational phases that want completely different hardware. Prefill is compute-bound: it wants raw FLOPS, tensor cores, peak throughput. Decode is memory-bandwidth-bound: it generates one token at a time and reads the entire KV cache for each one. Running both on the same GPU is a compromise where neither phase gets what it needs. During prefill, the memory bandwidth sits idle. During decode, the compute units sit idle.
And then there was the multi-model problem. Enterprises do not serve one model. They serve Llama for conversation, CodeLlama for code generation, a Mistral variant for summarization, several LoRA adapters for domain-specific tasks, maybe DeepSeek for reasoning-heavy workloads. Each model has different hardware requirements, different scaling characteristics, different latency targets. LoRA adapters add yet another dimension: the same base model might serve dozens of adapters, and routing needs to know which adapters are loaded where.
All of this needed to compose with Kubernetes. Not alongside it, not instead of it, but with it. Organizations had invested years in their cloud-native infrastructure. Gateway API, Prometheus, HPA, service mesh. An inference framework that required its own parallel universe of custom tooling was dead on arrival.
Four insights. Four problems that were individually well-understood but had never been synthesized into a single, cohesive infrastructure project. Until May 2025.
LLM inference at scale is not a load-balancing problem -- it is a cache topology problem. The routing layer must understand KV cache state, prefill/decode phase separation, LoRA adapter placement, and hardware heterogeneity. Generic load balancers are structurally unable to solve this.
The Day It Went Public #
Red Hat Summit. Boston. May 20, 2025. The announcement was remarkable not for what was announced but for who announced it together.
Red Hat, Google Cloud, IBM Research, CoreWeave, and NVIDIA stood on the same stage and said: we are building this together. These are companies that compete fiercely in the cloud and AI infrastructure markets. Their willingness to collaborate on a shared inference layer was the clearest possible signal that the problem was bigger than any one company's proprietary solution could address.
AMD, Cisco, Hugging Face, Intel, Lambda, and Mistral AI signed on as supporting organizations. UC Berkeley (the group behind vLLM and PagedAttention, led by Ion Stoica's lab) and the University of Chicago (the team behind LMCache and systematic prefix caching research) provided the academic depth that gave the project its technical soul.
We had built our own internal routing layer three times, and each time it fell apart the moment we added a second model. When llm-d launched, I remember looking at the EPP scoring algorithm and thinking: these people have felt the same pain we have, except they actually solved it right.
The first tagged release, v0.1.0, shipped within days of the announcement. Forty-five tokens per second on a baseline configuration. The number was almost irrelevant. What mattered was that the architecture was sound, the routing decisions were correct, and the scaffolding for everything that would follow was in place.
The release cadence that would define the next thirteen months had begun.
Most companies build internally first and open-source later, often years later, often with the best pieces held back. Red Hat took the opposite approach: the Red Hat AI Inference Server launched simultaneously with the open-source project. Every feature would land in the open-source project before or at the same time as the enterprise product. It was a bet that open-source velocity would outpace proprietary development. Thirteen months later, that bet has paid off handsomely.
The Chronicle: Month by Month #
Thirteen months is a long time in infrastructure. It is an eternity in AI. What follows is the story of llm-d told the way it actually unfolded: one month at a time, with all the momentum, the setbacks, the quiet breakthroughs that never made the press releases, and the loud ones that did.
May 2025: Ignition
The launch at Red Hat Summit in Boston was the public face of months of private work. Behind the scenes, engineers from Red Hat, IBM Research, and Google Cloud had been collaborating on the core architecture since early 2025, aligning on a design that none of them would have built alone. The v0.1 release shipped within days of the announcement, and while the throughput number (45 tokens per second) was deliberately modest, the architectural decisions baked into that first release would prove prescient. The Endpoint Picker (EPP) scoring algorithm, the Gateway API integration pattern, the health-check sidecar model: all of these shipped in v0.1 and survived every subsequent release without fundamental rearchitecture. The founding partners aligned not just on technology but on process. Apache 2.0 licensing. An open governance model from the first commit. A public roadmap. The decisions made in May would determine whether this project could credibly apply to the CNCF ten months later. Every one of those decisions was made with that trajectory in mind.
June 2025: The First Outsiders
The first month after launch is the moment of truth for any open-source project. Will external contributors show up? Will the documentation be good enough for someone without insider context to make a meaningful contribution? For llm-d, the answers came faster than expected. The first external pull requests arrived within two weeks of the announcement, mostly from engineers at companies that had attended the Summit demo and recognized the problem llm-d was solving. Architecture stabilization consumed most of the core team's energy. The EPP's internal data structures were refactored twice as the team pressure-tested different approaches to KV cache state tracking. The CI pipeline took shape, with GPU-accelerated test runners contributed by CoreWeave. And the community Slack channel, launched on day one, crossed 200 members by month's end. Most of them were lurking, reading, learning the codebase. That was exactly right. The people who lurk in June contribute in September.
July 2025: The Thesis Proved
v0.2 shipped with the subtitle "First Well-Lit Paths," and it was the release that turned skeptics into believers. Prefix-cache-aware scheduling landed, and the results were immediate and dramatic. Workloads with shared system prompts saw time-to-first-token drop by 70-80%. Prefill/decode disaggregation arrived in the same release, splitting the two inference phases across separate pod pools for the first time. The pd-sidecar container, a piece of engineering that would become central to llm-d's identity, handled KV cache handoff between prefill and decode pods with a transparency that made the complexity invisible to the client. DeepSeek-R1 support brought Mixture of Experts into the fold. The throughput number jumped from 45 to 200 tokens per second, a 4.4x improvement in two months. But the real proof was not in the numbers. It was in the architecture. Cache-aware routing worked. Disaggregation worked. And they worked together, compounding on each other in exactly the way the design had predicted. The thesis was proved.
August 2025: The Summer of Testing
August was the month nobody wrote blog posts about, and it was one of the most important months in the project's history. Enterprise customers who had been evaluating llm-d since the May announcement began serious pilot deployments. Their feedback was unsparing and invaluable. Edge cases that the core team had not anticipated surfaced under production traffic patterns: long-running conversations that fragmented KV caches across pods, LoRA adapter hot-swapping under load, health-check race conditions during rolling deployments. The team addressed each one systematically, and the fixes flowed back into the upstream project. The documentation push that accompanied the enterprise pilots produced the first comprehensive deployment guides, architecture decision records, and troubleshooting runbooks. These were not afterthoughts. The team treated documentation as a leading indicator of project maturity, and August was when that commitment became visible.
September 2025: Building for the Stage
KubeCon North America was two months away, and the team had a decision to make: ship v0.3 with incremental improvements, or swing for the fences on cross-platform hardware support. They chose the fences. Intel engineers began contributing XPU (Gaudi accelerator) support in earnest, working through the abstraction layers that would let the EPP route across heterogeneous hardware without knowing the details of each accelerator's memory architecture. Google Cloud engineers started TPU integration work, a technical challenge that required rethinking several assumptions baked into the NVIDIA-centric v0.1 and v0.2 releases. The cross-platform work was harder than anyone expected. Each hardware platform had different KV cache memory layouts, different latency characteristics for cache transfer, and different failure modes under load. September was the month that proved llm-d's abstraction layers were sound, because they had to be bent and stretched to accommodate hardware that the original designers had not built against. They held.
October 2025: KubeCon NA
v0.3, subtitled "Wider Well-Lit Paths," shipped in time for KubeCon North America in Atlanta. The demo on the show floor ran a live Llama 70B workload on a mixed cluster of NVIDIA H200s and Intel Gaudi accelerators, with the EPP routing transparently across both. The crowd around the demo station was three rows deep for most of the conference. Cross-platform support was the headline, but the release contained two other breakthroughs that would prove equally important. NIXL integration brought NVIDIA's high-performance interconnect library into the disaggregation pipeline, enabling KV cache transfers at speeds that made disaggregation practical for latency-sensitive production workloads. Wide expert parallelism across nodes pushed MoE serving past the single-node boundary, delivering 2,200 tokens per second per GPU on H200 clusters. And the Inference Gateway reached v1.0 GA, providing a production-hardened ingress layer. The Atlanta demo was a turning point for community confidence. Engineers who had been watching from the sidelines started opening issues, submitting PRs, and asking how to get their organizations involved.
I walked up to the demo booth at KubeCon NA just to poke holes in the architecture. I left having submitted my first issue. The fact that it was routing across NVIDIA and Intel hardware transparently -- that is what convinced me this was not vaporware.
November 2025: The Surge
The post-KubeCon effect is well-documented in open-source: a good conference demo generates a wave of new interest that either crashes against insufficient documentation and dies, or finds solid ground and sustains. llm-d found solid ground. GitHub stars doubled in November. The contributor count grew by 40%. More importantly, the quality of contributions shifted. New contributors were not just fixing typos; they were submitting architecture proposals, performance optimization patches, and hardware-specific improvements. The core team began preparing the CNCF Sandbox application in earnest. The application requirements demanded evidence of multi-vendor contribution, genuine community governance, and a clear fit within the cloud-native landscape. Every decision the project had made since May, from the Apache 2.0 license to the multi-company founding roster to the public roadmap process, had positioned it for exactly this moment. The application drafting process forced the team to articulate what llm-d was and what it was not, drawing boundaries that would prove useful for years to come.
December 2025: The Latency Breakthrough
v0.4 shipped in December, and it was the release that enterprise customers had been waiting for. A 40% reduction in per-output-token latency for DeepSeek V3.1 on H200 hardware made the difference between "impressive demo" and "deployable in production." Speculative decoding arrived, allowing a smaller draft model to generate candidate tokens that the main model verified in parallel. The engineering challenge was integrating speculative decoding into the distributed routing framework, where draft and main models might live on different pods with different cache states. The team solved it by extending the EPP's scoring to account for draft-model availability. CPU memory tiering for prefix cache offload landed in the same release, preventing GPU memory pressure from evicting reusable cache entries. The holiday season slowed contribution volume, but the quality of the December release set the stage for what was coming in the new year.
January 2026: The Application
The CNCF Sandbox application was submitted in January. The process required a formal project proposal, documentation of governance structure, contributor diversity metrics, and a presentation to the Technical Oversight Committee. Behind the scenes, IBM Research, Red Hat, and Google Cloud coordinated the joint donation. Each company's legal team reviewed the IP contribution. Each company's engineering leadership signed off on transferring governance to a vendor-neutral body. These conversations were not simple. They required executives at three competing companies to agree that the long-term health of the project was more important than any individual company's control over its direction. On the technical side, scale testing on B200 hardware began at CoreWeave, pushing the architecture to configurations that would have been unthinkable six months earlier. The 16x16 B200 topology that would produce the 50,000 tok/s number was being assembled.
February 2026: Liftoff
v0.5, subtitled "Sustaining Performance at Scale," was the release that answered the only question anyone still had: does this architecture actually scale? The 16x16 B200 topology at CoreWeave sustained 50,000 output tokens per second. From 45 tok/s in May to 50,000 in February. A thousand-fold improvement in nine months. The number was staggering, but the engineering behind it was more impressive than the number itself. Hierarchical KV offloading created a three-tier cache hierarchy (GPU, CPU, disk) that prevented the cache eviction storms that had plagued earlier versions under heavy load. Cache-aware LoRA routing solved the multi-adapter problem at scale. Active-active high availability eliminated the EPP as a single point of failure. Scale-to-zero autoscaling cut costs for bursty workloads. Red Hat AI 3.3 shipped in the same month, bringing v0.5 capabilities to enterprise customers within weeks of the upstream release.
March 2026: Amsterdam
KubeCon Europe. Amsterdam. March 24, 2026. The CNCF Technical Oversight Committee announced llm-d's acceptance into the Sandbox. The moment was the culmination of ten months of deliberate, strategic work: building the technology, building the community, building the governance structures, and building the trust across organizations that made a three-company joint donation possible. The acceptance was not the end of anything. It was the beginning of a new phase, one with higher expectations, broader scrutiny, and the institutional backing to meet both. The team celebrated briefly and then got back to work. There were governance structures to formalize, contributor onboarding processes to scale, and a roadmap to publish under the new vendor-neutral governance model.
April 2026: The New Normal
Post-CNCF acceptance brought a wave of attention that tested the project's operational maturity. New contributor pull requests tripled compared to the previous month. The maintainer team implemented a formal onboarding process: a "good first issues" label, a contributor guide with architecture walkthroughs, and weekly community calls open to anyone. Governance setup consumed significant time. The CNCF's requirements for vendor-neutral governance meant formalizing processes that had previously been informal: maintainer selection criteria, roadmap proposal and voting procedures, security response protocols. The team studied how other successful CNCF projects had handled this transition, borrowing heavily from Envoy's governance model while adapting it for the faster-moving AI infrastructure space. The result was a governance document that balanced stability with agility, requiring consensus for architectural decisions but allowing individual maintainers to approve routine improvements.
May 2026: One Year
Red Hat Summit returned, this time in Atlanta, and llm-d returned with it. Red Hat AI 3.4 shipped with two strategically significant developments. First, Red Hat AI Inference became available on IBM Cloud as a managed service. Second, the product expanded beyond OpenShift to vanilla Kubernetes on CoreWeave and Azure. The willingness to ship on non-Red Hat Kubernetes distributions was a powerful statement about where the value lived: not in the platform, but in the inference layer. On the open-source side, the project crossed its one-year anniversary with a contributor summit co-located with Red Hat Summit. Engineers from twelve organizations gathered in person for the first time to discuss the roadmap for the next year. The conversations were candid, sometimes heated, and productive. Multi-cluster federation, agentic inference patterns, and cost-aware routing emerged as the consensus priorities for the second year.
June 2026: Maturity
v0.7 shipped with a deliberate focus on operational maturity rather than performance fireworks. Standalone mode became the default deployment pattern, simplifying the getting-started experience for new adopters. CUDA 13.0.2 support landed. A comprehensive documentation overhaul treated every page as a first-class feature, with architecture diagrams, deployment decision trees, and troubleshooting guides written for operators who needed answers at 3 AM. CI coverage expanded to include cross-platform regression testing across NVIDIA, Intel, and TPU hardware. The project was optimizing for a new user's first hour, not just an expert's peak throughput. That shift in focus, from impressive to reliable, from fast to accessible, was the surest sign that llm-d had crossed the line from promising technology to production infrastructure.
The All-Star Roster #
Building infrastructure that the entire industry trusts requires more than good code. It requires the right people in the room. Look at who chose to put their name on llm-d, and what each brought to the table.
This was not a marketing exercise. Every one of these organizations contributed engineering hours, code, or research. When you see a roster like this aligned behind a single open-source project, it tells you something about the size of the problem being solved.
The 1,000x Rocket Ship #
Seven releases in thirteen months. Each one attacked the next bottleneck. Each one compounded on the last. The trajectory did not feel like incremental improvement. It felt like ignition.
v0.1 (May 2025): Ignition
The first release proved the architecture could work. The core EPP (Endpoint Picker) scoring algorithm shipped in its initial form: a weighted combination of KV cache affinity, queue depth, and pod health. Gateway API integration established the pattern that would carry through every subsequent release; llm-d would extend Kubernetes, not replace it. The health-check sidecar gave Kubernetes the signals it needed to manage inference pods correctly.
Forty-five tokens per second. Modest. But the routing decisions were correct, the control plane worked, and the architecture could scale. This was the "it compiles and routes correctly" release. The foundation was poured.
v0.2 "First Well-Lit Paths" (July 2025): The Thesis Proved
Two months later, v0.2 turned llm-d from an interesting architecture into a performance story. Three breakthroughs shipped simultaneously, each attacking a different bottleneck.
Prefix-cache-aware scheduling. The EPP now scored pods based on how much of the incoming request's prefix was already cached. A pod with 90% of the prefix cached scored dramatically higher than one starting cold. Sequential requests from the same user, or requests sharing system prompts and few-shot examples, consistently hit pods that could skip most of prefill. Cache hit rates above 80% became routine.
Prefill/decode disaggregation. Separate pod pools for each phase. Compute-optimized pods for prefill. Memory-optimized pods for decode. A new pd-sidecar container managed KV cache transfer between them. The handoff was invisible to the client: a request hit the EPP, got routed to a prefill pod, completed prefill, had its KV cache transferred to a decode pod, and started generating tokens. Two pods, one seamless experience.
MoE (Mixture of Experts) support arrived with DeepSeek-R1, including expert parallelism across GPUs. MoE models were becoming the dominant architecture for frontier models, and llm-d was ready.
The "Well-Lit Paths" name was deliberate philosophy. Each "path" was a tested, validated deployment pattern: single-node inference, disaggregated prefill/decode, multi-node MoE. Pick a path, not a pile of configuration knobs.
The "Well-Lit Paths" philosophy -- shipping tested, validated deployment patterns instead of configuration knobs -- is what made llm-d accessible to operators who needed production results, not science experiments.
v0.3 "Wider Well-Lit Paths" (October 2025): Breaking Free
v0.3 was the release that proved llm-d was not just an NVIDIA story.
Cross-platform hardware support expanded to Intel XPU (Gaudi accelerators) and Google TPU alongside NVIDIA GPUs. This was a significant engineering effort: the EPP, the health-check sidecar, and the disaggregation logic all needed to work across hardware with fundamentally different memory architectures, compute characteristics, and driver stacks. But it was essential. Enterprises choosing llm-d needed to know they were not locked into a single vendor.
NIXL integration brought NVIDIA's Interconnect Library into the disaggregation story, enabling high-performance KV cache transfer using RDMA and NVLink where available. This was the piece that made disaggregation practical at production latency targets; without fast cache transfer, the overhead would have negated the benefit.
Wide expert parallelism across nodes pushed MoE serving past the single-node boundary. On H200 clusters, this delivered 2,200 tokens per second per GPU. An 11x improvement over v0.2.
The Inference Gateway reached v1.0 GA, providing a production-hardened ingress layer with TLS termination, rate limiting, and Gateway API protocol translation.
v0.4 (December 2025): The Latency Breakthrough
v0.4 went after latency. A 40% reduction in per-output-token latency for DeepSeek V3.1 on H200 hardware, driven by better scheduling, more efficient cache transfer, and improved decode batching.
Speculative decoding shipped: a smaller draft model generates candidate tokens, and the main model verifies them in parallel. When predictions are correct (which happens frequently for predictable text) multiple tokens get confirmed in a single forward pass. Integrating this into the distributed routing framework, where the draft and main models might live on different pods, required careful engineering.
CPU memory tiering for prefix cache offload meant that when GPU memory filled up, least-recently-used cache entries moved to CPU memory instead of being evicted. This preserved reusable cache state and significantly improved hit rates for workloads with many distinct prefixes. TPU and Intel XPU disaggregation support also expanded.
v0.5 "Sustaining Performance at Scale" (February 2026): Liftoff
This was the release that answered the only question that mattered: does this architecture actually work at scale?
The answer was emphatic.
Hierarchical KV offloading extended CPU tiering into a full three-tier hierarchy: GPU memory (hot), CPU memory (warm), disk (cold). This prevented "cache eviction storms," cascading cache misses when GPU memory fills up, by allowing graceful degradation instead of cliff-edge failures.
Cache-aware LoRA routing solved the multi-adapter problem. The EPP tracked which adapters were loaded on which pods, routing requests to pods with the correct adapter already in memory. At scale, this was the difference between meeting and missing latency SLAs.
Active-active high availability eliminated single points of failure. Multiple EPP instances running simultaneously, sharing state through lightweight coordination. Scale-to-zero autoscaling cut costs for bursty workloads: pods for infrequently-used models could scale to zero and spin up on demand.
v0.7 (June 2026): Maturity
After the performance fireworks of v0.5, the team made a deliberate choice: v0.7 was about operational maturity. CUDA 13.0.2 support. Standalone mode as the default deployment pattern. A documentation overhaul that treated docs as a first-class feature. CI coverage expansion. The project was optimizing for a new user's first hour, not just an expert's peak throughput: a sign that llm-d was transitioning from impressive technology to reliable infrastructure.
The Numbers: From 45 to 50,000 #
I could list the numbers in a sentence, but they deserve context. Each jump in this table came from a different insight, a different breakthrough, a different team pushing past a different bottleneck. The compounding effect is what makes this story extraordinary.
| Version | Throughput | What Unlocked It | Hardware |
|---|---|---|---|
| v0.1 (May '25) | ~45 tok/s | Baseline EPP routing, Gateway API integration | Single pod, single GPU |
| v0.2 (Jul '25) | ~200 tok/s 4.4x vs v0.1 |
Prefix-cache-aware scheduling, P/D disaggregation | Multi-pod, NVIDIA GPUs |
| v0.3 (Oct '25) | ~2,200 tok/s/GPU 11x vs v0.2 |
Wide-EP across nodes, NIXL KV cache transfer | H200 clusters, multi-node |
| v0.4 (Dec '25) | ~3,500 tok/s 40% latency reduction |
Speculative decoding, CPU memory tiering | H200, Intel XPU, Google TPU |
| v0.5 (Feb '26) | ~50,000 tok/s ~3.1k tok/s per decode GPU |
Hierarchical KV offloading, LoRA routing, HA, scale-to-zero | 16x16 B200 topology |
| v0.7 (Jun '26) | ~50,000 tok/s Maintained + improved stability |
Standalone mode, CI hardening, documentation | B200, H200, XPU, TPU |
The 1,000x improvement did not come from a single eureka moment. It came from three forces compounding on each other:
Better routing (cache hits). Prefix-cache-aware scheduling eliminated redundant work. Every cache hit saved a full prefill computation. At 80%+ hit rates, this alone delivered 3-5x effective throughput improvement on prefill-heavy workloads.
Disaggregation (hardware-optimal workloads). Prefill on compute-optimized pods. Decode on memory-optimized pods. Each GPU spending its time doing what it does best, not sitting idle waiting for the other phase to finish.
Scale-out (more GPUs, efficiently). Wide expert parallelism plus NIXL's fast cache transfer meant that adding GPUs delivered near-linear throughput scaling instead of diminishing returns. The 16x16 B200 topology achieved roughly 3,100 tok/s per decode GPU: utilization efficiency remained high even at 32-GPU scale.
This is what makes distributed inference optimization qualitatively different from single-node work. Single-node optimization has a ceiling defined by the silicon. Distributed optimization has a much higher ceiling, but only if the coordination overhead is low enough that adding nodes actually helps. llm-d's architecture kept that overhead low enough to ride the curve.
The Breakthroughs That Mattered #
The version-by-version walkthrough tells you what shipped. This section tells you how the hardest problems were solved. These are the engineering stories behind the numbers, told with enough technical depth to be useful to the CNCF community members who will inherit and extend this work.
The EPP Scoring Algorithm: The Brain of the Operation
At the heart of llm-d sits the Endpoint Picker (EPP), and at the heart of the EPP sits a scoring algorithm that makes the routing decision for every incoming inference request. The algorithm computes a weighted score across three dimensions: KV cache affinity, queue depth, and pod health. The insight that made this work was treating the three dimensions as complementary signals rather than competing priorities.
KV cache affinity measures how much of the incoming request's prefix is already cached on a given pod. The EPP maintains a lightweight index of prefix hashes per pod, updated asynchronously via the health-check sidecar. When a request arrives, the EPP computes the prefix hash and scores each pod by match ratio. A pod with 95% prefix overlap scores dramatically higher than one with 10% overlap, because the former can skip nearly all of the prefill computation.
Queue depth acts as a load-balancing counterweight. A pod with perfect cache affinity but a queue 50 requests deep is worse than a pod with moderate affinity and an empty queue. The weighting between these two signals is configurable but ships with defaults that the team calibrated against production traffic patterns from enterprise pilots. The defaults work well for most workloads; the configurability exists for the edge cases where they do not.
Pod health is the safety net. Pods reporting degraded health (high memory pressure, GPU thermal throttling, pending eviction) get their scores penalized regardless of cache affinity or queue depth. The health signal comes from the sidecar, which has direct access to vLLM's internal metrics. This three-signal approach proved to be the right abstraction because it separates concerns cleanly: cache affinity optimizes for computational efficiency, queue depth optimizes for latency, and health optimizes for reliability. No single signal dominates, and the weights let operators tune the balance for their specific SLA requirements.
Prefix Cache Routing: Routing IS Cache Management
The deepest insight in llm-d's design is deceptively simple: in a distributed inference system, request routing and cache management are the same problem. Where you route a request determines what gets cached where. What is cached where determines where you should route the next request. The two are inextricably linked, and any system that treats them as separate concerns will leave performance on the table.
Traditional caching systems (CDNs, database caches, web caches) use consistent hashing or similar techniques to distribute cached content across nodes. These approaches work for static or slowly-changing content but break down for LLM inference because the "content" (the KV cache) is dynamically generated by the inference computation itself. You cannot pre-distribute it. You cannot replicate it cheaply. And the value of a cache entry depends not just on its existence but on its relationship to incoming requests.
llm-d's prefix cache routing solves this by making the EPP aware of both the request's content (specifically its prefix) and the cache state of every pod. The EPP does not just route to the least-loaded pod; it routes to the pod where the request will benefit most from existing cached state. This transforms the routing layer from a dumb load balancer into an active cache orchestrator. Each routing decision implicitly shapes the cache topology of the entire fleet, concentrating related requests on pods where their shared prefixes are already warm. Over time, the fleet self-organizes into a cache-optimal configuration without any explicit cache management logic. The routing decisions are the cache management.
This insight, that routing IS cache management, is what separates llm-d from every general-purpose load balancer and serving framework that has tried to bolt on LLM support. It cannot be added as an afterthought. It has to be the foundational design principle.
Once you see that routing and caching are the same problem, you cannot unsee it. Every previous system I worked on treated them as separate concerns, and we kept wondering why our cache hit rates were terrible. The answer was that the load balancer was actively working against the cache. llm-d made me rethink five years of infrastructure decisions.
In distributed LLM inference, routing IS cache management. Where you route a request determines what gets cached where, and what is cached determines where you should route. Any system that treats them as separate concerns will leave performance on the table.
Prefill/Decode Disaggregation: Splitting What Should Never Have Been Together
The two phases of LLM inference, prefill and decode, have fundamentally different hardware requirements. Prefill is compute-bound: it processes the entire input prompt through the transformer in parallel, performing massive matrix multiplications that saturate the GPU's tensor cores. Decode is memory-bandwidth-bound: it generates one token at a time, reading the entire KV cache for each token but performing relatively little computation per read. Running both on the same GPU is like asking a sprinter and a marathon runner to share the same pair of shoes.
The idea of splitting them was not new. Academic papers had explored it. But making it work in a production Kubernetes environment, with transparent handoff, acceptable latency overhead, and no visible impact on the client, was a genuine engineering achievement. The pd-sidecar container is the key component. It runs alongside the vLLM engine in both prefill and decode pods, managing the KV cache handoff between them. When a prefill pod completes the prefill phase, the sidecar serializes the KV cache, transfers it to the decode pod's sidecar (using NIXL when available for high-performance transfer), and signals the decode pod's vLLM engine to begin token generation with the received cache state.
The non-obvious challenge was latency. Every millisecond of handoff latency adds directly to time-to-first-token. The team spent weeks optimizing the serialization format, the transfer protocol, and the decode pod's cache ingestion path. On NVIDIA hardware with NVLink or InfiniBand, the handoff adds less than 10ms of latency, well within the budget for production workloads. On commodity networking, the overhead is higher but still manageable for throughput-oriented workloads where absolute latency is less critical than aggregate tokens per second.
NIXL Integration: Microsecond Cache Transfer
NVIDIA's Interconnect Library (NIXL) provides a unified abstraction over the various high-performance interconnects available in GPU clusters: NVLink for intra-node GPU-to-GPU communication, NVSwitch for multi-GPU topologies, InfiniBand for inter-node communication, and RDMA for direct memory access across the network. For llm-d, NIXL solved a specific and critical problem: making KV cache transfer between pods fast enough that disaggregation's latency overhead did not negate its throughput benefit.
The engineering challenge was integrating NIXL into the pd-sidecar without creating a hard dependency on NVIDIA hardware. The sidecar needed to detect available interconnects at runtime, negotiate the fastest available transfer path between source and destination pods, and fall back gracefully to standard TCP when high-performance interconnects were not available. The integration also needed to handle the asymmetry inherent in real clusters, where some pod pairs have NVLink connectivity (same node) while others have only InfiniBand (different nodes) or TCP (different racks).
The solution was a transport abstraction layer in the sidecar that wraps NIXL's API and exposes a simple send/receive interface to the rest of the disaggregation pipeline. At startup, the sidecar probes available interconnects and builds a capability map. When a transfer is initiated, it selects the fastest available path. On clusters with full NIXL support, KV cache transfers for a Llama 70B model complete in under 5ms. On clusters without NIXL, the same transfer takes 50-100ms over TCP, still usable but noticeably slower. This performance gap is the primary reason enterprises invest in high-performance networking for their inference clusters, and NIXL integration gives them a direct return on that investment.
Hierarchical KV Offloading: The Three-Tier Cache That Saved Scale
As llm-d scaled to larger clusters and higher request volumes, a failure mode emerged that the team had anticipated but not yet solved: cache eviction storms. When GPU memory fills up, the inference engine must evict cached KV entries to make room for new requests. Under heavy load, this creates a cascading effect: evicted entries cause cache misses, which trigger full prefill computations, which consume GPU compute and memory, which cause more evictions. The system oscillates between periods of high cache hit rates and periods of near-zero hit rates, with throughput swinging wildly between them.
Hierarchical KV offloading solved this by creating a three-tier cache hierarchy. The first tier is GPU memory: fast, expensive, limited. The second tier is CPU memory: slower for inference computation but much larger and cheap enough to hold significantly more cache entries. The third tier is disk (NVMe SSD): the slowest tier but effectively unlimited in capacity. When GPU memory pressure rises, the least-recently-used cache entries are offloaded to CPU memory rather than evicted entirely. If CPU memory fills, entries move to disk. When a request arrives that matches an offloaded entry, the entry is promoted back to GPU memory, bypassing the full prefill computation.
The key insight was that promoting a cached entry from CPU memory to GPU memory is dramatically faster than recomputing it from scratch. For a Llama 70B model, a full prefill computation for a 4,096-token prompt takes roughly 200ms. Promoting the same KV cache from CPU memory takes approximately 15ms. From disk, roughly 40ms. Even the slowest tier is 5x faster than recomputation. This turned cache pressure from a cliff-edge failure (evict, recompute, thrash) into a graceful degradation (offload, promote when needed, maintain throughput). At scale, hierarchical offloading was the difference between the 50,000 tok/s number and a system that collapsed under its own cache pressure.
Scale-to-Zero: Sleeping Without Forgetting
Kubernetes' Horizontal Pod Autoscaler can scale pods to zero. But for LLM inference, scaling to zero means losing all cached KV state, which means that when the first request arrives after a scale-up, every prefill starts cold. For infrequently-used models (a LoRA adapter that handles customer-service queries during business hours, for example), this cold-start penalty is significant: the first batch of requests after scale-up experiences dramatically higher latency than subsequent requests.
llm-d's scale-to-zero implementation preserves cached state across scale-down/scale-up cycles. When a pod scales to zero, its KV cache is serialized and stored in a persistent volume claim. When the pod scales back up, the cache is restored from storage before the pod begins accepting requests. The pod "wakes up" with warm caches, as if it had never slept. The engineering subtlety is in cache invalidation: the stored cache must be validated against the model version and configuration at restoration time, because a model update during the sleep period would make the cached KV state invalid. The implementation handles this by storing a model fingerprint alongside the cache and performing a fast validation check during restoration. If the fingerprint does not match, the cache is discarded and the pod starts cold. This happens rarely in practice, since model updates are infrequent relative to scale-to-zero cycles.
The Moment That Changed Everything #
llm-d is accepted into the CNCF Sandbox. Donated by IBM Research, Red Hat, and Google Cloud. The Technical Oversight Committee votes to accept, establishing llm-d as a vendor-neutral project with a path toward becoming a foundational piece of the cloud-native AI infrastructure stack.
Let me be direct about what this meant.
CNCF Sandbox acceptance is not a rubber stamp. Projects must demonstrate contributors from multiple organizations, genuine community momentum, and a clear fit within the cloud-native landscape. The Technical Oversight Committee evaluates each application and votes. Plenty of projects apply. Not all get in.
For llm-d, getting in meant the project had crossed a threshold from "promising technology backed by big-name sponsors" to "infrastructure the cloud-native ecosystem considers essential." The company that sits next to you on the CNCF landscape? That is Kubernetes. Prometheus. Envoy. Containerd. You do not get listed alongside those projects unless the TOC believes you are solving a problem at that level of importance.
But it was not just about prestige. CNCF acceptance delivered concrete, structural changes that matter for everyone who contributes to or depends on the project.
Vendor-neutral governance. No single company controls the roadmap. IBM Research, Red Hat, and Google Cloud each donated intellectual property and engineering resources, but the project's direction is now governed by the contributor community. This is the structural guarantee that prevents the "rug pull" scenario, where a dominant vendor steers the project to serve its own interests at the community's expense. For contributors investing their time and career capital, this protection is not theoretical. It is the reason you can commit to a project without wondering if the rules will change when the business strategy shifts.
CNCF infrastructure. CI pipelines, security audit programs, trademark protection, and the visibility that comes with being part of the landscape. For a project aiming to be infrastructure, this institutional backing accelerates the trust-building that enterprise adoption requires.
A path forward. Sandbox to Incubating to Graduated. Incubating requires demonstrated production adoption, robust governance, and a completed security audit. Graduated, the level Kubernetes, Prometheus, and Envoy hold, requires broad adoption and a proven governance model. The Sandbox acceptance is the starting line, not the finish line. But it is the starting line that matters most.
For contributors, CNCF governance means that your work is protected by a neutral IP policy (Apache 2.0 plus CNCF's CLA), the project has a clear code of conduct, and there is a transparent process for becoming a maintainer and influencing the project's direction. This is what makes multi-company open-source collaboration sustainable over years, not just months.
The projects that navigate this path most successfully (Kubernetes, Prometheus, Envoy, Containerd) share a common trait: they solved a real infrastructure problem that no single vendor could own. llm-d's bet is that distributed LLM inference routing is exactly that kind of problem.
The moment I heard it was accepted into the CNCF, I felt a genuine sense of relief. We had been evaluating llm-d for our production stack, and CNCF governance meant we could depend on it without worrying about a single vendor changing the rules. That is when I went from "evaluating" to "deploying."
Amsterdam told us that bet is landing.
From Single Company to Global Commons: The Governance Story #
There is a cynical reading of corporate open-source that goes like this: a company builds something useful, slaps an open-source license on it for marketing purposes, maintains effective control through contributor asymmetry and unwritten rules, and eventually re-licenses or acquires the community's contributions when the business model demands it. This pattern has played out enough times that experienced contributors are right to be skeptical.
llm-d was designed from day one to make that pattern structurally impossible. The governance story is worth telling in detail, because it is a case study in how to do multi-vendor open-source right.
The starting position was deliberate. llm-d began as a Red Hat-led initiative, with significant contributions from IBM Research. Red Hat could have open-sourced the project under a permissive license while retaining control of the governance structures, the maintainer appointments, and the roadmap. Many companies do exactly this. Instead, Red Hat chose to architect the project for eventual vendor-neutral governance from the first commit. The Apache 2.0 license was selected specifically because it is the most widely trusted permissive license in the enterprise open-source ecosystem. It allows commercial use, modification, and distribution without copyleft obligations, which removes the most common barrier to corporate contribution. Every partner organization's legal team could evaluate it in a single review cycle.
Multi-vendor contribution was not an aspiration; it was a requirement. By the time of the May 2025 announcement, engineers from Red Hat, IBM Research, Google Cloud, NVIDIA, and CoreWeave had all contributed code. Intel and AMD engineers followed within weeks. The founding partners were not just logos on a slide; they were commit authors in the git log. This was essential for the CNCF application, which requires evidence of contributor diversity, not just corporate endorsement.
The CNCF application process itself was rigorous. The project submitted a formal proposal to the Technical Oversight Committee in January 2026, detailing the project's scope, governance structure, contributor diversity, and fit within the CNCF landscape. The TOC conducted due diligence: reviewing the codebase, evaluating the governance documents, assessing the health of the contributor community, and determining whether the project addressed a genuine gap in the cloud-native ecosystem. The review process took approximately two months. TOC members asked pointed questions about vendor concentration, roadmap independence, and long-term sustainability. The answers were strong because the project had spent ten months building the evidence.
The joint donation structure was unusual and significant. IBM Research, Red Hat, and Google Cloud co-donated the project. Three competing companies simultaneously transferring intellectual property to a neutral foundation sent a clear signal: no single company owned this project, and no single company would own its future. The legal coordination required to execute a three-company simultaneous donation was substantial. Each company's IP counsel had to review the contribution, confirm that all donated code was free of encumbrances, and authorize the transfer under CNCF's IP policy. The fact that all three completed this process demonstrates executive-level commitment to vendor neutrality.
Vendor-neutral governance in practice means specific, enforceable structures. Maintainer selection is based on sustained contribution, not corporate affiliation. Any contributor who meets the criteria (consistent high-quality contributions, demonstrated technical judgment, community participation) can become a maintainer regardless of their employer. The roadmap process is public: proposals are submitted as GitHub issues, discussed in community meetings, and prioritized through a transparent voting process. No company has a veto. No company has a reserved seat. Contribution guidelines are documented, enforced, and the same for every contributor regardless of their organizational affiliation.
The comparison to other successful CNCF projects is instructive. Kubernetes was donated by Google. Envoy was donated by Lyft. Both projects successfully transitioned from single-company origins to genuinely multi-vendor communities, but the transition took years of deliberate governance work. llm-d benefited from studying these predecessors. The multi-company co-donation at launch, the Apache 2.0 license from day one, and the early establishment of public governance processes compressed a transition that typically takes two to three years into ten months. The CNCF's acceptance timeline reflected this: the TOC recognized that llm-d arrived with governance maturity that most Sandbox applicants develop after acceptance, not before.
This governance story matters not because governance is exciting (it is not) but because governance is what determines whether a project survives its second year. Technology draws contributors in. Governance is what keeps them.
Multi-vendor governance is not a nice-to-have -- it is structural protection against the "rug pull." Apache 2.0 licensing, a three-company co-donation, and CNCF oversight ensure that no single vendor can steer the project at the community's expense. This is what makes long-term contribution safe.
Where llm-d Fits: The Stack Is Layering #
Let me say something that might sound counterintuitive: llm-d does not have competitors. It has neighbors.
The inference stack is not consolidating into one winner-take-all framework. It is layering: execution engines, programming frameworks, runtime orchestration, fleet routing, and general-purpose serving are settling into distinct strata. The winners will be projects that compose gracefully with the rest of the stack, not projects that try to swallow it whole. Here is where the major projects sit.
NVIDIA Dynamo
Dynamo optimizes the execution and runtime layer: how inference computations are scheduled on NVIDIA hardware with deep NVLink/NVSwitch/CUDA integration. llm-d optimizes the routing and orchestration layer: deciding which pod handles which request across the fleet. In March 2026, NVIDIA announced a formal Dynamo-llm-d integration. The fact that NVIDIA chose to integrate rather than compete tells you everything about where the boundary lines are. Dynamo makes each node fast. llm-d makes the fleet smart. Use both.
TensorRT-LLM
NVIDIA's inference optimization library compiles models into execution plans for NVIDIA GPUs. It operates at a fundamentally different level of abstraction. TensorRT-LLM makes individual inference faster. llm-d ensures the right inference happens on the right hardware with the right cached state. They are layered, not competing: vLLM can use TensorRT-LLM as a backend, and llm-d orchestrates vLLM pods.
SGLang
A programming framework for LLM applications with a serving runtime. Its strengths are structured generation and composable LLM calls. SGLang optimizes how you write LLM applications and how individual requests are served. llm-d optimizes how a fleet handles many concurrent requests across many models. llm-d is engine-agnostic in principle; a future where SGLang serves as the engine inside llm-d-managed pods is architecturally natural.
Ray Serve
A general-purpose model serving framework. Excellent for multi-model serving, autoscaling, and heterogeneous pipelines. But general-purpose by design. It does not have LLM-specific optimizations like KV cache-aware routing, prefill/decode disaggregation, or LoRA adapter tracking. For LLM inference specifically, a purpose-built routing layer delivers optimizations that a general framework cannot match. Ray Serve remains strong for non-LLM serving or mixed-model pipelines.
The inference stack is layering, and llm-d owns the routing and orchestration layer. The NVIDIA Dynamo integration is proof that this is not just our view; the ecosystem's biggest players agree. The question is not "which framework wins" but "how cleanly do the layers compose." llm-d's Kubernetes-native, engine-agnostic design is built for exactly this world.
llm-d does not compete with inference engines or hardware runtimes -- it composes with them. The inference stack is layering into distinct strata, and the winners are projects that integrate cleanly rather than trying to swallow the stack whole.
Standing on the Shoulders of Giants #
Great infrastructure is rarely invented from scratch. It is synthesized from research breakthroughs that came before. llm-d's technical innovations are built on a body of academic work that deserves recognition.
vLLM and PagedAttention (UC Berkeley)
The breakthrough that made modern LLM serving practical. Woosuk Kwon, Zhuohan Li, Sicheng Lin, and others in Ion Stoica's lab introduced PagedAttention: treating the KV cache like virtual memory, with paging. Instead of pre-allocating contiguous memory blocks (leading to severe fragmentation), PagedAttention allocates cache in small, non-contiguous blocks managed by a page table. Memory utilization jumped from 50-60% to 95%+. vLLM became the de facto standard for LLM serving. It is the engine running inside every llm-d inference pod, and the Berkeley team are founding partners, ensuring the engine and orchestration layer evolve together.
LMCache and Prefix Caching (University of Chicago)
The University of Chicago's LMCache project formalized systematic prefix caching for LLM inference. The insight is elegant: many LLM requests share common prefixes. Every customer-service request shares a system prompt. Every few-shot request shares the same examples. Every multi-turn conversation shares the entire history. By caching KV state for shared prefixes and reusing it across requests, you eliminate redundant computation. This research directly informed llm-d's cache-aware routing: the EPP knows which specific prefixes each pod has cached and scores them based on match ratio. The UChicago team are founding partners.
NIXL (NVIDIA)
NVIDIA's Interconnect Library provides high-performance memory transfer between GPUs, between nodes, and across interconnect fabrics (NVLink, InfiniBand, PCIe, RDMA). For llm-d, NIXL is the enabler of practical prefill/decode disaggregation. When a prefill pod hands off its KV cache to a decode pod, that transfer needs microsecond latency and multi-gigabyte-per-second bandwidth. NIXL delivers both, using whatever the fastest available interconnect is. Without it, disaggregation's latency penalty would negate its throughput benefit.
The Enterprise Story #
While the open-source project moved at open-source speed, the enterprise track kept pace with a discipline that reflected Red Hat's decades of experience shipping open-source software to organizations where downtime is measured in dollars per second.
May 2025: Red Hat AI Inference Server launches alongside the open-source announcement. Day-one enterprise commitment. The product was built on the same vLLM + llm-d stack, with certified hardware compatibility, long-term support, security patching, and enterprise SLAs.
October 2025: Red Hat AI 3 reaches GA. llm-d capabilities go generally available in the enterprise product, including MaaS (Model-as-a-Service) capabilities, a Llama Stack-based Unified API, and MCP (Model Context Protocol) adoption.
February 2026: Red Hat AI 3.3 ships with v0.5 capabilities: scale-to-zero, LoRA routing, hierarchical cache management. The two-to-three-month lag between upstream and enterprise held steady.
May 2026: Red Hat AI 3.4 at Red Hat Summit in Atlanta. Two noteworthy developments. First, Red Hat AI Inference became available on IBM Cloud as a managed service. Second, and this is the strategically important one, the product expanded beyond OpenShift to vanilla Kubernetes on CoreWeave and Azure. Red Hat was saying that llm-d-based inference was valuable enough to ship on non-Red Hat Kubernetes distributions. The inference layer had become more important than the platform.
The fact that Red Hat shipped the inference product on non-Red Hat Kubernetes -- on CoreWeave and Azure -- told me everything I needed to know about where they believed the value was. It was in the inference layer, not the platform. That kind of conviction is rare.
The cadence tells the story: every major upstream release appeared in the enterprise product within two to three months. Same engineers contributing to both. Upstream leads, downstream follows. That is how you build trust with both the community and the enterprise customer.
Beyond the Numbers: What the Metrics Tell Us #
Raw metrics are easy to cite and easy to misread. A thousand GitHub stars could mean a thousand interested engineers or a thousand people who clicked a button and moved on. What matters is not the numbers themselves but the patterns they reveal. Here is what a deeper look at llm-d's community health metrics actually tells us about the project's trajectory.
Contributor Diversity: The Health of the Ecosystem
The single most important metric for a CNCF project's long-term health is contributor diversity. A project dominated by one organization, no matter how well-intentioned, is fragile. If that organization shifts priorities, the project withers. llm-d's contributor base spans thirteen-plus organizations, with no single company accounting for more than 40% of commits. Red Hat and IBM Research are the largest contributors, but Google Cloud, NVIDIA, Intel, CoreWeave, and independent contributors collectively account for the majority of code. This distribution was not accidental; it was cultivated through deliberate decisions about which contributions to prioritize, which features to accept from external contributors, and how to structure the review process to avoid bottlenecks at any single company's maintainers.
Geographic distribution matters too. Contributors span North America, Europe, and Asia, with a growing presence from academic contributors in Australia. The community calls rotate across time zones quarterly, ensuring no single geography is structurally disadvantaged. First-time contributors versus repeat contributors is the metric that distinguishes a project with buzz from a project with staying power. Roughly 35% of first-time contributors come back for a second PR, which compares favorably to CNCF projects of similar age. The team attributes this to a combination of fast PR review times, clear contribution guidelines, and the "good first issues" label that provides a structured onramp for newcomers.
Release Cadence: What Seven in Thirteen Means
Seven releases in thirteen months translates to one release roughly every eight weeks. For context, Kubernetes maintained a quarterly release cadence in its first two years. Envoy shipped roughly every six weeks. llm-d's pace is comparable to the fastest-shipping successful CNCF projects, which is remarkable given the project's hardware complexity (every release must be validated across NVIDIA, Intel, and TPU hardware) and the multi-vendor coordination required for each release's feature set.
The cadence also reveals something about the project's engineering maturity. Shipping every eight weeks requires CI that works, a release process that is automated, and a contributor base that can deliver features on a predictable schedule. Projects that ship irregularly or unpredictably signal process immaturity. llm-d's regularity signals the opposite.
PR Velocity and Issue Resolution
Pull request review times are a direct measure of how welcoming a project is to contributors. If your PR sits unreviewed for weeks, you stop contributing. llm-d's median first-review time of under 48 hours and median merge time of under one week for non-architectural changes are strong indicators of maintainer responsiveness. For architectural changes (new features, API modifications, cross-cutting concerns), review times are longer because they involve multi-maintainer review and community discussion, which is appropriate.
Issue first-response time of approximately 24 hours means that someone who reports a bug or asks a question gets a human response the same day or the next. Critical bugs are triaged same-day. This responsiveness is powered by a maintainer rotation system that distributes triage responsibility across organizations and time zones, preventing burnout and ensuring coverage.
Documentation as a Health Signal
The documentation contribution rate is an underappreciated metric for project health. Projects where only core developers write docs end up with documentation that is accurate but incomprehensible to newcomers. Projects where newcomers write docs end up with documentation that is accessible but sometimes inaccurate. The healthiest pattern is when both groups contribute, and llm-d has achieved that balance. The v0.7 documentation overhaul was a project-wide effort that involved core maintainers writing architecture documents and newer contributors writing getting-started guides and troubleshooting runbooks. The result is documentation that serves both audiences, which is exactly what a project targeting CNCF Incubating needs.
What We Are Building Next #
Seven releases in, llm-d has proven its core thesis. Cache-aware routing works. Prefill/decode disaggregation works. They work at scale. They work across hardware vendors. But I want to be honest with you: the problems that remain unsolved are at least as exciting as the ones we have solved. And some of them are genuinely hard.
Multi-Cluster Federation
Today, llm-d routes within a single Kubernetes cluster. Enterprises increasingly run inference across multiple clusters: different regions for latency, different providers for redundancy, on-premise for data sovereignty. Multi-cluster federation would give the EPP a fleet-wide view, routing to the best pod regardless of which cluster it lives in. This requires cross-cluster KV cache state sharing, which is a hard distributed systems problem. The kind of problem that gets researchers out of bed in the morning.
Agentic Inference Patterns
AI agents are becoming primary consumers of LLM inference, and their workload patterns are fundamentally different. Agents make chains of calls: tool calls, reasoning steps, multi-turn planning, where each call depends on the previous output. An agent's entire chain should ideally route to the same pod group to maximize KV cache reuse. The EPP needs to understand request chains, not just individual requests. This is new territory, and the patterns have not yet been established.
Cost-Aware Routing
Not every request needs the fastest hardware. A batch summarization job can tolerate higher latency in exchange for cheaper spot instances. Cost-aware routing would factor in hardware cost alongside cache affinity, queue depth, and latency targets, routing to the cheapest available hardware that still meets the SLA. For organizations spending millions on GPU compute, this is where the real savings live.
Multi-Modal Inference
How do you cache and route image embeddings alongside text KV caches? As models become multi-modal, the routing layer needs to handle heterogeneous cache types. This is largely unexplored territory.
Model-Aware Autoscaling
A 7B model and a 70B model have fundamentally different scaling curves. Model-aware autoscaling would encode these characteristics into scaling decisions, choosing the right number and size of pods for each model based on its architecture, hardware requirements, and observed load patterns.
Deeper Hardware Integration
NVIDIA B200, AMD MI300X, Intel Gaudi 3, Google TPU v6: each has different strengths. Hardware-aware scheduling that matches model architectures to silicon characteristics would let heterogeneous clusters serve each model on the hardware that suits it best.
The multi-cluster federation problem is what gets me out of bed in the morning. Cross-cloud KV cache transfer at production latency? That is a genuine distributed systems challenge, not just an engineering task. The kind of problem that produces PhD theses and industry standards.
Cross-cloud KV cache transfer: is it even practical to move gigabytes of cache state across cloud boundaries? Inference-time compute scaling: can the routing layer dynamically allocate more "thinking time" to harder problems? These are open research questions, not engineering tasks. The answers will shape what v1.0 looks like: stable APIs, backward compatibility guarantees, production hardening at a level where the open-source version is deployable without an enterprise wrapper. That is the bar. We intend to clear it.
Looking Forward: A Letter from the Maintainers #
To everyone who has contributed to llm-d over the past thirteen months, and to everyone considering joining us for what comes next:
We want to start with gratitude. Not the perfunctory kind that shows up in release notes, but the specific kind that comes from knowing exactly who did what and how hard it was.
Thank you to the engineers at IBM Research who spent late nights debugging KV cache serialization edge cases that only appeared under production load patterns. Thank you to the Google Cloud team who rewrote the TPU abstraction layer three times until it was right. Thank you to the NVIDIA engineers who opened up NIXL integration paths that did not exist in the public API until we asked. Thank you to the CoreWeave infrastructure team who stood up the B200 test clusters that produced the 50,000 tok/s numbers. Thank you to the Intel contributors who proved that cross-platform hardware support was not just possible but practical. Thank you to the UC Berkeley and UChicago researchers whose academic work gave us the scientific foundation to build on. And thank you to every independent contributor who opened a PR, filed an issue, or asked a question that made us realize our documentation was not clear enough.
We also want to be honest about what was hard. Building across organizational boundaries is harder than building within one. Code review norms differ between companies. Communication styles vary. Time zones make synchronous collaboration difficult. There were moments when a disagreement about architecture was really a disagreement about which company's existing infrastructure the project should accommodate, and navigating those moments required patience and good faith from everyone involved. We did not always get it right. Some early design decisions were reversed. Some contributors' first PRs sat unreviewed for too long. Some documentation was written for insiders and was impenetrable to newcomers. We learned, we adapted, and we are still learning.
What excites us about the next year is the scope of the unsolved problems. Multi-cluster federation is a genuine distributed systems challenge that will push the EPP's architecture in directions we have not yet imagined. Agentic inference patterns will require us to rethink what a "request" even means when an AI agent's chain of tool calls spans minutes and dozens of model invocations. Cost-aware routing opens the door to optimizations that save enterprises millions of dollars annually. And multi-modal inference will force us to generalize our caching and routing abstractions beyond text. These are not incremental features. They are the kind of problems that attract the best engineers in the world. We intend to build a project worthy of their time.
If you are reading this and considering contributing, here is where we need help the most. We need systems engineers who understand distributed caching and want to work on multi-cluster KV cache federation. We need Kubernetes experts who can help us push the boundaries of the Gateway API for inference-specific use cases. We need hardware engineers who can extend our platform support to new accelerators. We need documentation writers who can translate complex architecture into accessible guides. We need test engineers who can help us build cross-platform CI that catches regressions before they ship. And we need community builders who can help us scale our onboarding process, run community calls, and mentor new contributors.
There is a reason we chose to build this in the open, under vendor-neutral governance, with the CNCF as our institutional home. We believe that the infrastructure layer for AI inference is too important to be owned by any single company. The decisions made in this layer, about how models are served, how hardware is utilized, how costs are allocated, affect every organization that deploys AI at scale. That infrastructure must be open, it must be community-governed, and it must be built by the broadest possible coalition of contributors.
The foundation is laid. The trajectory is clear. The hardest and most interesting problems are ahead of us, not behind us. Come build this with us.
June 2026
llm-d By the Numbers
Come Build This With Us #
Here is what I know after thirteen months.
The foundation is laid. Seven releases. A CNCF home. Performance that went from 45 tokens per second to 50,000. An architecture that has been validated by partners whose names carry weight in every boardroom and every server room on the planet. Enterprise GA status. Cross-platform hardware support. Active-active high availability. The technology works.
But technology was never the hard part.
The hard part is building a community that can sustain the pace. That can absorb new contributors without burning out the early ones. That can maintain governance rigor while moving at the speed the AI inference market demands. That can navigate the inevitable tensions when partners who also compete need to collaborate on a shared roadmap.
If you have felt the pain of running LLM inference at scale, the wasted GPU-hours, the unpredictable latency, the jury-rigged load balancers, you already understand why this project exists. If you have worked with Kubernetes and wished the inference layer spoke its language natively, you understand the architecture. If you have contributed to open-source infrastructure and know the satisfaction of building something that thousands of organizations rely on, you understand the opportunity.
The foundation is laid. The ecosystem is forming. The hardest and most interesting problems are still ahead of us.
Come build this with us.
Explore the Full Journey
See every milestone, release, and partnership mapped across llm-d's first year in an interactive visual timeline.
Open the Interactive Timeline Star Us on GitHub