vLLM Router 2026 Roadmap Issues
Planning date: September 8, 2026
Code baseline: vLLM Router main@1d10e71 (identical to upstream main at the time of review)
Objective: define an actionable roadmap for the remainder of 2026 around vLLM-native integration, lightweight high-performance routing, exact KV awareness, and agent-aware scheduling.
Scope: CPU fast path, exact KV routing, agent-aware scheduling, E/P/D, and Router HA.
Overview
| # |
Roadmap issue |
Current foundation |
Priority |
2026 target |
External value |
| 1 |
Integrate and Optimize the CPU-side Inference Fast Path |
◐ Rust tokenizer, streaming utilities, and benchmarks exist, but they do not yet form an end-to-end request fast path |
P0 |
Tokenizer cache, request-scoped reuse, and JSON/streaming hot-path optimization |
Demonstrate the performance advantage of a lightweight Rust router |
| 2 |
Event-driven Exact KV-aware Routing |
○ Exact KV awareness is missing; the current cache-aware policy uses an approximate request-history tree |
P0 |
KV Events, an exact index, unified cost, and safe fallback |
Flagship capability for the year |
| 3 |
Extend Session Affinity to Agent/Program-aware Scheduling |
◐ Session-ID-based consistent hashing exists |
P1 |
Program metadata, a program-aware policy, and a KV TTL prototype |
Differentiate for agentic workloads |
| 4 |
Extend P/D Routing to E/P/D |
◐ P/D, DP-rank routing, and KV connectors exist; the Encode stage does not |
P1 |
Encode pool and three-stage routing MVP |
Extend multimodal scheduling |
| 5 |
Complete Multi-Router HA and State Recovery |
◐ Health checks, retries, readiness, and process-level graceful shutdown exist; multi-Router state HA does not |
P0 foundation / P1 complete |
Drain and recovery foundations; active-active as a stretch goal |
Make stateful routing production-ready |
Roadmap principles
- Do not turn vLLM Router into a broad, all-in-one gateway; its core remains vLLM inference routing.
- Prioritize CPU optimizations that directly benefit tokenization, routing, and the streaming fast path.
- Make exact KV state trustworthy before optimizing policy gains.
- Agent hints must be optional, and ordinary OpenAI-compatible requests must remain compatible.
- Deliver minimal closed loops for EPD and HA first rather than expanding the initial issues into full platform projects.
- Base every performance claim on reproducible experiments using the same hardware, model, and trace.
Issue 1: [Roadmap][P0] Integrate and Optimize the CPU-side Inference Fast Path
Background
As GPU inference becomes faster, CPU work such as tokenization, JSON encoding/decoding, and stream processing can become the bottleneck. SMG moves tokenization and detokenization into a Rust gateway and uses an L0 exact-match tokenizer cache, an L1 prefix-aware tokenizer cache, and a gRPC tokens-in/tokens-out path to reduce Python/GIL and serialization overhead.
vLLM Router already includes a Rust tokenizer, chat-template support, streaming decoding utilities, and benchmark infrastructure. However, the tokenizer module is not yet part of a complete CPU pipeline across the main request path, and there is no L0/L1 token-result cache. The worker data plane is currently HTTP; the gRPC/Tonic dependency in Cargo is primarily used for OpenTelemetry and does not constitute a worker gRPC fast path.
The goal of this issue is to integrate and optimize the existing modules into a measurable CPU fast path. It is not to reimplement the Rust tokenizer or to build a complete tool, MCP, or provider gateway.
Scope
- Establish stable baselines for Router CPU usage, latency, throughput, and memory.
- Integrate the existing Rust tokenizer, chat template, and streaming decoder into the request paths that need them.
- Add a bounded L0 exact-match tokenizer cache.
- Evaluate and implement an L1 prefix token cache aligned to special-token boundaries.
- Tokenize and apply the chat template once per request, then reuse the result across the KV index, routing policy, and P/D flow.
- Reduce JSON copies, repeated parsing, and intermediate string allocations in the request path.
- Optimize incremental streaming decode and stop-sequence detection.
- Evaluate an optional pre-tokenized/gRPC backend fast path.
- Add metrics for cache hits, CPU time, allocations, and Router-added latency.
Deliverables
Acceptance criteria
- Token IDs and chat-template results match the target vLLM version.
- Every cache has a capacity bound, TTL/eviction policy, and memory metrics; unbounded growth is not allowed.
- Publish CPU, memory, P50/P99 Router-added latency, and throughput results.
- Preserve existing HTTP behavior when the new fast path is disabled.
- Do not count the OpenTelemetry gRPC exporter as worker gRPC support.
Non-goals
- Complete MCP tool orchestration.
- Provider API translation.
- Reimplementing every Hugging Face multimodal processor inside the Router.
Issue 2: [Roadmap][P0] Add Event-driven Exact KV-aware Routing
Background
The current cache-aware policy maintains an approximate character-level tree from Router request history. It cannot determine which KV blocks are currently resident on a Worker or DP rank. Dynamo Router combines KV lifecycle events, a prefix index, and active load when selecting a Worker.
Scope
- Subscribe to vLLM KV
Stored, Removed, and Cleared events.
- Build an exact KV index keyed by model, Worker, DP rank, and block key.
- Query request prefixes at token/block granularity and calculate actually reusable blocks.
- Combine uncached prefill, active decode, active requests, and KV transfer cost in a unified cost model.
- Automatically fall back to approximate cache-aware routing or P2C when KV Events are unavailable or the index is not trustworthy.
- Emit a structured route receipt and decision metrics.
- Validate block size, tokenizer compatibility, Worker epoch, and event freshness.
Deliverables
Acceptance criteria
Stored, Removed, and AllBlocksCleared events update the index correctly.
- DP-rank-level KV placement matches actual Worker state.
- Requests continue through a fallback policy when events are unavailable.
- Report KV hit rate, TTFT P99, goodput/GPU, incorrect-routing rate, and Router overhead.
- Do not claim absolute superiority using competitor data collected in a different environment.
Non-goals
- A multi-data-center global index is not required in the first phase.
- Full multi-tier KV-offload orchestration is not required in the first phase.
Issue 3: [Roadmap][P1] Extend Session Affinity to Agent/Program-aware Scheduling
@warriorsniu
Background
Agent workflows contain multiple LLM calls, tool calls, and waiting periods. Per-request scheduling loses program-level context, which can cause session KV eviction, migration of one agent across Workers, and repeated prefill after a tool returns.
The current consistent-hash policy can read headers such as x-session-id, x-user-id, and x-tenant-id and attempts to map the same key to the same Worker. This provides sticky sessions, but it does not understand programs, steps, tool waits, KV TTL, or expected output length.
ThunderAgent introduces an LLM Program abstraction and a program-aware scheduler. Continuum uses a KV TTL based on recomputation/reload cost and eviction-induced queueing cost to selectively retain KV across tool calls.
Scope
- Define optional program/session/step metadata.
- Preserve existing
x-session-id consistent-hash behavior as the baseline when program metadata is absent.
- Support program ID, step ID, agent role, priority, deadline, and expected output length.
- Select Workers using both KV affinity and live load at program scope.
- Add program-level fairness so long-running agent workflows cannot monopolize a Worker.
- Design a KV TTL/retention hint for tool-wait periods.
- Evaluate eviction or offload at TTL expiry and prefetch before a tool returns.
- Fall back to ordinary KV-aware routing when hints are absent or unsupported by the engine.
- Evaluate job completion time using real or public agent traces.
Deliverables
Acceptance criteria
- Ordinary requests do not need to supply agent metadata.
- Scheduling decisions for one program are explainable and replayable.
- Compare ordinary KV-aware routing, sticky sessions, and program-aware routing.
- Report agent job completion time, KV reuse, Worker migrations, and fairness.
- Router-to-engine KV control must receive explicit accept/reject feedback from the engine; the Router must not assume a hint was executed.
Non-goals
- The Router does not execute tools.
- The Router does not manage complete tool runtimes, disks, or network ports.
- Performance numbers reported by the research papers are not project results.
Issue 4: [Roadmap][P1] Extend P/D Routing to E/P/D
Background
A multimodal request can be decomposed into Encode, Prefill, and Decode stages. SGLang's EPD Router work introduces Encode Workers, a three-stage pipeline, and independent Worker policies. The referenced CI run covers its EPD routing pipeline work.
Scope
- Add an Encode Worker type, Encode pool, and service discovery.
- Support a minimal Encode → Prefill → Decode orchestration flow.
- Support independent policies for Encode, Prefill, and Decode.
- Carry encoder output and KV-transfer metadata between stages.
- Remain compatible with vLLM EC Connector/EPD interfaces rather than defining a separate private protocol.
- Skip Encode for text-only requests and continue using the existing P/D path.
- Add health, load, and latency metrics for all three stages.
Deliverables
Acceptance criteria
- Encode, Prefill, and Decode can be deployed and scaled independently.
- Text-only requests do not enter the Encode stage.
- A failure in any stage produces an explicit error; execution must not continue with incomplete intermediate state.
- Streaming response and client-cancellation behavior are correct.
Non-goals
- A general-purpose Omni stage graph is not part of the first phase.
- Complex topology-aware EPD is not part of the first phase.
Issue 5: [Roadmap][P0/P1] Complete Multi-Router HA and State Recovery
Background
Exact KV state, sessions, and active load make the Router stateful. The current Router already has Worker health checks, retries, circuit breakers, liveness/readiness endpoints, and Axum graceful shutdown on SIGTERM or Ctrl+C. It does not have an explicit DRAINING state, readiness-based traffic removal, multi-Router state recovery, or cross-replica HA.
SMG uses SWIM and CRDTs to synchronize Worker, policy, rate-limit, and cache-aware state. llm-d supports leader election, warm standby, and constrained active-active operation. This issue completes multi-Router HA on top of the existing single-process reliability mechanisms rather than reimplementing health checks and retries.
Scope
- Extend the existing liveness/readiness endpoints and process-level graceful shutdown with an explicit
DRAINING state, readiness-based traffic removal, and rolling-upgrade behavior.
- Add replay for KV Event gaps and a snapshot/rebuild path for cold starts.
- Provide a basic active-passive/warm-standby mode.
- Evaluate active-active operation in which exact KV indexes converge independently and only the minimum required state is synchronized.
- Define explicit
EXACT, DEGRADED, and FALLBACK states during recovery.
- Add fault-injection, RTO, and state-convergence metrics.
Deliverables
Acceptance criteria
- In a multi-Router deployment, restarting or rolling one Router does not make the service unavailable.
- A new Router does not perform exact KV routing until its index is trustworthy.
- Event gaps are detected, and failed recovery triggers safe fallback.
- Complete Router-kill, Worker-kill, event-loss, and 24-hour steady-state tests.
Non-goals
- Strong-consistency Raft is not a mandatory dependency in the first phase.
- The first phase does not synchronize every local counter or transient request state.
Dependencies
Issue 1: CPU Fast Path Integration ─┐
├─> Issue 3: Agent-aware Scheduling
Issue 2: Exact KV Routing ──────────┤
│ └─> Issue 5: Router HA
│
└─> Issue 4: E/P/D reuses token/block and load foundations
References
CPU-side inference fast path
Exact KV-aware routing
Agent/program-aware scheduling
E/P/D routing
Router high availability
vLLM Router 2026 Roadmap Issues
Overview
Roadmap principles
Issue 1: [Roadmap][P0] Integrate and Optimize the CPU-side Inference Fast Path
Background
As GPU inference becomes faster, CPU work such as tokenization, JSON encoding/decoding, and stream processing can become the bottleneck. SMG moves tokenization and detokenization into a Rust gateway and uses an L0 exact-match tokenizer cache, an L1 prefix-aware tokenizer cache, and a gRPC tokens-in/tokens-out path to reduce Python/GIL and serialization overhead.
vLLM Router already includes a Rust tokenizer, chat-template support, streaming decoding utilities, and benchmark infrastructure. However, the tokenizer module is not yet part of a complete CPU pipeline across the main request path, and there is no L0/L1 token-result cache. The worker data plane is currently HTTP; the gRPC/Tonic dependency in Cargo is primarily used for OpenTelemetry and does not constitute a worker gRPC fast path.
The goal of this issue is to integrate and optimize the existing modules into a measurable CPU fast path. It is not to reimplement the Rust tokenizer or to build a complete tool, MCP, or provider gateway.
Scope
Deliverables
Acceptance criteria
Non-goals
Issue 2: [Roadmap][P0] Add Event-driven Exact KV-aware Routing
Background
The current cache-aware policy maintains an approximate character-level tree from Router request history. It cannot determine which KV blocks are currently resident on a Worker or DP rank. Dynamo Router combines KV lifecycle events, a prefix index, and active load when selecting a Worker.
Scope
Stored,Removed, andClearedevents.Deliverables
Acceptance criteria
Stored,Removed, andAllBlocksClearedevents update the index correctly.Non-goals
Issue 3: [Roadmap][P1] Extend Session Affinity to Agent/Program-aware Scheduling
@warriorsniu
Background
Agent workflows contain multiple LLM calls, tool calls, and waiting periods. Per-request scheduling loses program-level context, which can cause session KV eviction, migration of one agent across Workers, and repeated prefill after a tool returns.
The current consistent-hash policy can read headers such as
x-session-id,x-user-id, andx-tenant-idand attempts to map the same key to the same Worker. This provides sticky sessions, but it does not understand programs, steps, tool waits, KV TTL, or expected output length.ThunderAgent introduces an LLM Program abstraction and a program-aware scheduler. Continuum uses a KV TTL based on recomputation/reload cost and eviction-induced queueing cost to selectively retain KV across tool calls.
Scope
x-session-idconsistent-hash behavior as the baseline when program metadata is absent.Deliverables
Acceptance criteria
Non-goals
Issue 4: [Roadmap][P1] Extend P/D Routing to E/P/D
Background
A multimodal request can be decomposed into Encode, Prefill, and Decode stages. SGLang's EPD Router work introduces Encode Workers, a three-stage pipeline, and independent Worker policies. The referenced CI run covers its EPD routing pipeline work.
Scope
Deliverables
Acceptance criteria
Non-goals
Issue 5: [Roadmap][P0/P1] Complete Multi-Router HA and State Recovery
Background
Exact KV state, sessions, and active load make the Router stateful. The current Router already has Worker health checks, retries, circuit breakers, liveness/readiness endpoints, and Axum graceful shutdown on
SIGTERMorCtrl+C. It does not have an explicitDRAININGstate, readiness-based traffic removal, multi-Router state recovery, or cross-replica HA.SMG uses SWIM and CRDTs to synchronize Worker, policy, rate-limit, and cache-aware state. llm-d supports leader election, warm standby, and constrained active-active operation. This issue completes multi-Router HA on top of the existing single-process reliability mechanisms rather than reimplementing health checks and retries.
Scope
DRAININGstate, readiness-based traffic removal, and rolling-upgrade behavior.EXACT,DEGRADED, andFALLBACKstates during recovery.Deliverables
Acceptance criteria
Non-goals
Dependencies
References
CPU-side inference fast path
Exact KV-aware routing
Agent/program-aware scheduling
E/P/D routing
Router high availability