kvcache-ai / kvcache-ai/Mooncake
[Call For Contributions] Mooncake Conductor Roadmap
- Dominant language
- C++
- Stars
- 6.6k
- Forks
- 1.2k
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 312
Description
## Background
The Mooncake Conductor Indexer is a service for tracking and reporting token cache-hit statistics across cache tiers and model instances. It exposes APIs that allow clients to query hit statistics by token IDs or chunked token hashes, helping inference systems make better cache-aware scheduling decisions.
The current Conductor implementation has not yet been merged into the `main` branch. Before merging it, we should clarify the roadmap and improve the overall extensibility of the project. The goal is to evolve the existing HTTP RESTful service into a reusable, multi-language Conductor control plane: the core implementation remains in Go, the interface layer supports Go, Rust, and Python SDKs, and the existing HTTP service remains available as a compatibility layer.
## Phase 0: Baseline and Compatibility
- [ ] **smoke tests**: Add end-to-end test cases that validate the basic Conductor service flow. @guozhihao-224
- [ ] **Add performance benchmarks**: Provide scripts to measure key Conductor service metrics, such as QPS, latency, and memory usage. @guozhihao-224
## Phase 1: Go Core Library Refactor
- [ ] **Extract an importable Go library**: Move the non-startup business logic from `main.go` and the core logic from `kvevent.EventManager` into reusable packages.
- [ ] **Restructure Go packages**: Move the binary entry point to `cmd/mooncake_conductor` and place the core functionality under `pkg/conductor`.
- [ ] **Define the public Go API**: Expose stable methods such as `Start`, `Stop`, `Register`, `Unregister`, and `Query`.
- [ ] **Separate interface adapters from core logic**: Decouple HTTP handlers, ZMQ subscriptions, and configuration loading from the core service, so every entry point calls the same service layer.
## Phase 2: Interface Layer Decoupling
- [ ] **Introduce a gRPC/Proto contract**: Add strongly typed proto definitions that standardize the register, unregister, and query operations.
- [ ] **Generate multi-language clients**: Provide gRPC-based SDKs for Go, Rust, and Python. Rust and Python clients should call Conductor through RPC instead of depending on Go internal packages.
## Phase 3: Correctness and RAS
- [ ] **Route all operations through the core service interface**: Ensure register, unregister, and query operations all use the shared service interface to reduce duplicated REST-layer business logic.
- [ ] **Expand concurrency-safety coverage**: Test subscription lifecycle management, tenant instance maps, prefix cache table updates, and concurrent queries.
- [ ] **Improve high availability**: Make Conductor service data highly available and avoid service disruption caused by single points of failure.
## Phase 4: Integrate More Frameworks
- [ ] **Integrate vLLM Ascend**: Support ascend-store-connector backends such as Mooncake and Yuanrong. @yangsonglin13
- [ ] **Integrate SGLang HiCache**: Support SGLang HiCache as a KV event publisher.
- [ ] **Integrate Mooncake Store**: Support a KV event publisher in Mooncake Store. @Asher-XunZhang
Contributor guide
Assessment
This issue has not been assessed yet.