Azure / Azure/azure-sdk-for-rust
[Cosmos] Client-side throughput control
- Dominant language
- Rust
- Stars
- 884
- Forks
- 365
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 109
Description
## Summary
Add client-side throughput control to the Cosmos Rust SDK, complementing the server-side features (priority-based execution and throughput buckets) shipped in #4078.
## Scope
Re-introduce the `ClientSide` variant to `ThroughputControlGroupOptions` (removed in #4078 for GA, enum is `#[non_exhaustive]`):
- **`ThroughputTarget`** enum — `Absolute(u32)` for fixed RU/s limits, `Threshold(f64)` for percentage of provisioned throughput
- **Client-side rate limiter** — SDK-enforced request rate limiting before sending to the service
- **Optional priority level** — combine with client-side throttling for local prioritization
## References
- Java SDK: [`ThroughputControlGroupConfigBuilder`](https://learn.microsoft.com/en-us/java/api/com.azure.cosmos.ThroughputControlGroupConfigBuilder)
- Parent issue: #3904
- Server-side implementation: #4078
Contributor guide
Research direction
Start by reading the server-side implementation in #4078 and the parent issue #3904 to understand the existing throughput-control model. Compare the requested client-side behavior with the Java SDK's ThroughputControlGroupConfigBuilder reference. Done means the Rust SDK supports client-side targets, rate limiting before service requests, and optional priority handling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, rust
- Domain
- api, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100