Community project: strata-router, a multi-node router for Strata / 社区项目:Strata 多节点路由入口
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 65/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- documentation
Research direction
Start with the README or docs, the locations the issue suggests, and check their existing conventions for mentioning community projects. The issue describes the external Strata router at https://github.com/konijiwa110/strata-router. Done would mean adding an appropriate mention there, if the project considers it suitable.
Written by the indexing model from the issue text.
Description
Hi, thanks for Strata! I run it on a couple of machines and wrote a small router in front of them. Sharing it in case it is useful to others:
https://github.com/konijiwa110/strata-router (MIT)
What it does
Clients point at one endpoint and requests are spread across several Strata nodes. The API is the same as Strata's (/v1/messages, /v1/chat/completions, /v1/responses, /v1/models, ...); requests are passed through to the nodes unchanged.
Routing
- Sticky sessions: a session is identified by its system prompt plus first user message, and goes back to the node that already has its KV cache.
- Moving when busy: if that node is busy, the router estimates how many tokens an idle node would have to re-read (not counting the system prompt and tools the idle node already cached). It moves the session only if that is under a threshold, otherwise it waits for the original node.
- Strategies: even, least load, random, weighted.
- Node modes: enable / drain / disable; a request that fails to connect is retried on another node.
Console
- Node hardware metrics and live progress, including prompt-read progress from
/metrics - Request log with the routing decision for each request
- Multiple access keys with usage stats
- Chinese / English UI; the backend uses only the Python standard library
If you think it is worth a mention in the README or docs, that would be great; feel free to close this otherwise.
中文
感谢 Strata!我在几台机器上跑 Strata,前面加了一个路由入口,开源出来,也许对别人有用:
**https://github.com/konijiwa110/strata-router**(MIT)
功能
客户端只连一个入口,请求会分到多台 Strata 节点。接口与 Strata 相同(/v1/messages、/v1/chat/completions、/v1/responses、/v1/models 等),请求原样转发给节点。
路由
- 会话粘性:以系统提示加第一条用户消息识别会话,同一会话回到已有其 KV 缓存的节点。
- 忙时换机:原节点忙时,估算换到空闲节点需要重读多少 token(不计该节点已缓存的系统提示与工具),低于阈值才换,否则等原节点。
- 分配策略:平均分配、最少负载、随机、按权重。
- 节点状态:启用 / 排空 / 停用;连接失败的请求自动换到其他节点重试。
控制台
- 节点硬件指标与实时进度(含从
/metrics读取的提示读取进度) - 请求记录,含每个请求的路由决策
- 多个访问密钥及用量统计
- 中文 / 英文界面;后端只用 Python 标准库
如果觉得值得在 README 或文档里提一下就太好了;不合适的话直接关闭即可。
- Dominant language
- C++
- Stars
- 11.6k
- Forks
- 1k
- Avg merge
- 7h 46m
- Merged PRs (30d)
- 30
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Niko1221/Strata
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
expert_cache_segmented_test fails on HIP builds instead of skipping (--vram-elastic is CUDA-only)Possibly taken @nekomario28 claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
hip_q2_zero fails on gfx1201 (R9700) with ROCm 7.10: Q2_0 signed-zero fix e9a5f8d is gated to gfx1012 / HIP < 7Possibly taken @nekomario28 claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
Niko1221/Strata#1463 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Niko1221/Strata#1322 · 1 comment ·
Maintainers usually reply within 1 day
Similar issues
-
Status: Awaiting triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
espressif/arduino-esp32#12984 ·
Maintainers usually reply within 1 day
-
torch_ops/logprob.cu does not compile with the serving container's nvcc (13.3.73); check_torch_ops.py cannot run as shippedPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 Under an hour Newbie friendliness 72/100
ashhart/TensorFold#535 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
agent:Windows bug
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day