> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://docs.nvidia.com/dynamo/llms.txt. For full content including API reference and SDK examples, see https://docs.nvidia.com/dynamo/llms-full.txt.

# Router

The Dynamo KV router selects an eligible worker using reusable KV cache state and projected active load. Use it when prefix reuse should influence placement; use a non-KV routing mode when your deployment needs only load balancing or an externally selected worker.

## Start With Your Request Path

Choose the page that matches where requests enter Dynamo:

| Request path | Start here |
| --- | --- |
| Local Dynamo Frontend | [KV-Aware Routing for the CLI](/dynamo/dev/cli/kv-aware-routing/overview) |
| Dynamo Frontend on Kubernetes | [Dynamo Frontend Routing](/dynamo/dev/kubernetes/kv-aware-routing/using-the-dynamo-frontend) |
| Kubernetes Gateway API | [KV-Aware Routing on Kubernetes](/dynamo/dev/kubernetes/kv-aware-routing/overview) |
| Custom or multi-tier request path | [Standalone Router](/dynamo/dev/cli/kv-aware-routing/standalone-router) |

For a topology comparison and the configuration boundary between the Frontend and workers, see the [Router Guide](/dynamo/dev/knowledge-base/modular-components/router/router-guide).

## Follow a Request Through the Router

1. The request host tokenizes and normalizes the request.
2. The router filters workers that cannot serve it.
3. The router scores eligible workers using cache overlap and projected load.
4. Aggregated deployments run on the selected worker, while disaggregated deployments select separate prefill and decode workers. Workers publish KV lifecycle events when available; set `--no-router-kv-events` to predict cache state when the router cannot consume them.

Read [KV-Aware Routing](/dynamo/dev/knowledge-base/concepts/system-architecture/kv-aware-routing) for the architecture-level flow. Read [Routing Concepts](/dynamo/dev/knowledge-base/modular-components/router/routing-concepts) for the cost model, [Router Filtering](/dynamo/dev/knowledge-base/modular-components/router/router-filtering) for eligibility, and [Deficit Round Robin Queue Scheduling](/dynamo/dev/knowledge-base/modular-components/router/deficit-round-robin) for policy-class arbitration.

## Continue by Task

| Need | Use |
| --- | --- |
| Tune cache and load tradeoffs | [Configuration and Tuning](/dynamo/dev/knowledge-base/modular-components/router/configuration-and-tuning) |
| Run separate prefill and decode pools | [Disaggregated Serving](/dynamo/dev/knowledge-base/modular-components/router/disaggregated-serving) |
| Recover router state or run replicas | [Router Operations](/dynamo/dev/knowledge-base/modular-components/router/router-operations) |
| Run router primitives outside the Frontend | [Standalone Services](/dynamo/dev/knowledge-base/modular-components/router/standalone-indexer) |
| Change or test router behavior | [Develop the Router](/dynamo/dev/knowledge-base/modular-components/router/router-design) |

The [Frontend Configuration Reference](/dynamo/dev/reference/components/frontend-configuration#router) is the canonical source for embedded-router flags, environment variables, defaults, and boolean forms.