Skip to content

feat(sglang): add disaggregated sidecar KV routing - #13862

Merged
connorcarpenter15 merged 2 commits into
ai-dynamo:mainfrom
connorcarpenter15:fix/sglang-sidecar-launcher-config
Sep 2, 2026
Merged

connorcarpenter15 merged 2 commits into
ai-dynamo:mainfrom
connorcarpenter15:fix/sglang-sidecar-launcher-config

Conversation

@connorcarpenter15

@connorcarpenter15 connorcarpenter15 commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor

Overview:

Add a disaggregated KV-aware routing launcher for SGLang sidecars and align the existing sidecar launchers with Dynamo's standard configuration.

Details:

  • Add disagg_kv_router.sh with two prefill and two decode SGLang engines, four native-gRPC sidecars, KV-event discovery, and Dynamo's KV-aware frontend router.
  • Give every engine distinct GPU, HTTP, gRPC, KV-event, and system-port defaults, plus distinct bootstrap ports for the two prefill engines.
  • Make the first aggregate sidecar honor DYN_SYSTEM_PORT1, then fall back to DYN_SYSTEM_PORT, then 8081.
  • Remove unused OTEL_SERVICE_NAME assignments from the aggregate KV-router and disaggregated launchers.
  • Validate the launchers with bash -n, ShellCheck, help/error-path checks, and the applicable pre-commit hooks.

Where should the reviewer start?

lib/sidecar/sglang/launch/disagg_kv_router.sh

Related Issues

⚠️ This section is required. Choose one path below and delete the other.

🚫 This PR is NOT linked to an issue:

  • Confirmed β€” no related issue

Summary by CodeRabbit

  • New Features
    • Added support for launching four SGLang sidecars with disaggregated prefill and decode engines.
    • Added configurable port resolution with sensible fallback defaults.
    • Added KV-routing and native gRPC configuration for multi-engine deployments.
  • Chores
    • Simplified sidecar startup configuration by removing per-worker telemetry service naming.

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
@dynamo-ops

Copy link
Copy Markdown
Contributor

/ok to test 4011c73

@github-actions

Copy link
Copy Markdown
Contributor

πŸ‘‹ Hi connorcarpenter15! Thank you for contributing to ai-dynamo/dynamo.

Just a reminder: The NVIDIA Test Github Validation CI runs an essential subset of the testing framework to quickly catch errors.Your PR reviewers may elect to test the changes comprehensively before approving your changes.

πŸš€

@github-actions github-actions Bot added the external-contribution Pull request is from an external contributor label Aug 26, 2026
Signed-off-by: Connor Carpenter <connorc@nvidia.com>
@connorcarpenter15
connorcarpenter15 temporarily deployed to external_collaborator August 26, 2026 20:32 — with GitHub Actions Inactive
@connorcarpenter15 connorcarpenter15 changed the title fix(sglang): align sidecar launcher configuration feat(sglang): add disaggregated sidecar KV routing Aug 26, 2026
@dynamo-ops

Copy link
Copy Markdown
Contributor

/ok to test 103407e

@connorcarpenter15
connorcarpenter15 marked this pull request as ready for review August 26, 2026 20:39
@connorcarpenter15
connorcarpenter15 requested a review from a team as a code owner August 26, 2026 20:39
@github-actions github-actions Bot added feat and removed fix labels Aug 26, 2026
@coderabbitai

coderabbitai Bot commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. πŸŽ‰

ℹ️ Recent review info
βš™οΈ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 49ab43e0-ae90-439d-ae42-0379f265ec22

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 1758394 and 103407e.

πŸ“’ Files selected for processing (3)
  • lib/sidecar/sglang/launch/agg_kv_router.sh
  • lib/sidecar/sglang/launch/disagg.sh
  • lib/sidecar/sglang/launch/disagg_kv_router.sh
πŸ’€ Files with no reviewable changes (1)
  • lib/sidecar/sglang/launch/disagg.sh

Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review.


Walkthrough

The changes add a disaggregated SGLang KV router launcher. They configure four engines and sidecars, add port fallback resolution, and remove worker-specific OTEL_SERVICE_NAME assignments.

Changes

SGLang KV router launch flow

Layer / File(s) Summary
Port and environment resolution
lib/sidecar/sglang/launch/agg_kv_router.sh, lib/sidecar/sglang/launch/disagg.sh
The scripts resolve system ports through environment fallbacks and remove worker-specific OTEL_SERVICE_NAME assignments.
Launcher configuration
lib/sidecar/sglang/launch/disagg_kv_router.sh
The new launcher parses model and passthrough options, configures runtime defaults, registers cleanup, and starts the Dynamo frontend in KV router mode.
Engine and sidecar orchestration
lib/sidecar/sglang/launch/disagg_kv_router.sh
The launcher starts two prefill engines, two decode engines, four Dynamo sidecars, and waits for any process to exit.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: βšͺ Minimal Β· up to 10340

The PR adds and aligns SGLang sidecar launchers without any identified merge-blocking risk at the current head.

πŸš₯ Pre-merge checks | βœ… 5
βœ… Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage βœ… Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2…
Linked Issues check βœ… Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check βœ… Passed Check skipped because no linked issues were found for this pull request.
Title check βœ… Passed The title clearly identifies the primary change: adding disaggregated SGLang sidecar KV routing. It is concise and specific.
Description check βœ… Passed The description covers the overview, implementation details, reviewer starting point, validation steps, and required issue-status section. It is complete and aligned with the changeset.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2 files.

✨ Finishing Touches πŸ’‘ 1
πŸ› οΈ Fix failing CI checks πŸ’‘
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands.

@connorcarpenter15
connorcarpenter15 merged commit 00897ab into ai-dynamo:main Sep 2, 2026
96 of 97 checks passed

This branch was previously deployed

1 inactive deployment
external_collaborator β€” 103407ea Deployed Aug 26, 2026 by connorcarpenter15 via ok-to-test #12733
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

external-contribution Pull request is from an external contributor feat size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants