Router
The Dynamo KV Router intelligently routes requests by evaluating their computational costs across different workers. It considers both decoding costs (from active blocks) and prefill costs (from newly computed blocks), using KV cache overlap to minimize redundant computation. Optimizing the KV Router is critical for achieving maximum throughput and minimum latency in distributed inference setups.
Quick Start
To launch the Dynamo frontend with the KV Router:
For Kubernetes, set DYN_ROUTER_MODE=kv on the Frontend service. For event-driven KV state, configure backend workers to publish KV cache events using the backend-specific flags described in Router Operations. Use --no-router-kv-events only when you want approximate cache-state prediction.
Standalone Router
You can also run the KV router as a standalone service (without the Dynamo frontend). See the Standalone Router component for more details.
For deployment modes and quick start steps, see the Router Guide. For CLI arguments and tuning guidelines, see Configuration and Tuning. For A/B benchmarking, see the KV Router A/B Benchmarking Guide.
Prerequisites and Limitations
Requirements:
- Dynamic endpoints only: KV router requires
register_model()withmodel_input=ModelInput.Tokens. Your backend handler receives pre-tokenized requests withtoken_idsinstead of raw text. - Backend workers must call
register_model()withmodel_input=ModelInput.Tokens(see Backend Guide) - You cannot use
--static-endpointmode with KV routing (use dynamic discovery instead)
Multimodal Support:
- Image routing via multimodal hashes: Supported in the documented TRT-LLM and vLLM router paths.
- Other backend or modality combinations: Check the backend-specific multimodal docs before relying on multimodal hash routing.
Limitations:
- Static endpoints not supported—KV router requires dynamic model discovery via etcd to track worker instances and their KV cache states
For basic model registration without KV routing, use --router-mode round-robin, --router-mode random, --router-mode least-loaded, or --router-mode device-aware-weighted with both static and dynamic endpoints.
Next Steps
- Router Guide: Deployment modes, quick start, and page map
- Routing Concepts: Cost model and worker-selection behavior
- Configuration and Tuning: Router flags, transport modes, and metrics
- Disaggregated Serving: Prefill and decode routing setups
- Router Operations: Replicas, persistence, and recovery
- Router Examples: Python API usage, K8s examples, and custom routing patterns
- Router Testing: Test layers from Rust unit tests to fixture-backed replay and full process E2E
- Standalone Indexer: Run the KV indexer as a separate service for independent scaling
- Router Design: Architecture details, algorithms, and event transport modes