Bursts become provider throttles.
Every workload races for the same finite pool. Interactive requests fail beside work that could have waited.
Open-source inference QoS
Protect interactive traffic, queue flexible work, and measure whether another capacity block is actually necessary.
The operating problem
Request counters cannot distinguish a small chat turn from a 100,000-token workflow. InferQoS estimates normalized work before dispatch and admits it against the capacity that actually exists.
Every workload races for the same finite pool. Interactive requests fail beside work that could have waited.
Unused shares remain borrowable. New high-value traffic reclaims newly available capacity without pretending running generations can be preempted.
Compare baseline behavior with configured QoS and receive an honest answer when sustained saturation means scheduling cannot help.
Keep APIM, Kong, Envoy, or your existing gateway. Change a base URL or route, add authenticated QoS metadata, and preserve OpenAI-compatible streaming end to end.
Integration patternsRust-first, work-conserving, cancellation-aware, and production-capable with no database or broker. Add Valkey only when replicas share one finite pool.
Weighted service classes, tenants, and applications share capacity by normalized work. Deadline pressure and queue aging prevent rigid priority from becoming starvation.
Predicted and actual token use, cached input, latency, 429s, and Retry-After tune a conservative safety factor.
Calculate queue, rejection, and SLO outcomes without delaying production traffic. Enforcement is one configuration change.
Adoption pathSSE responses pass through without full buffering. Client cancellation releases claims and propagates upstream when safe.
Atomic Valkey reservations and expiring leases coordinate replicas. Loss of coordination fails closed by default.
Change capacity, burst intensity, and workload mix. The deterministic browser simulator shows queue latency, throttling, SLO attainment, fairness, and utilization side by side.
Open the simulatorProvider-specific authentication, throttling signals, token accounting, and capacity semantics stay inside adapters. The scheduler never assumes every token costs the same.
Provisioned deployments, managed identity, Retry-After variants, usage reconciliation, and background Azure Monitor calibration.
Provisioned throughput patterns with ambient AWS credential resolution and native SigV4 signing.
Provisioned throughput with Application Default Credentials and workload identity.
Any finite compatible endpoint with configurable work coefficients, custom headers, TLS, streaming, and 429 learning.
Private by default
No project analytics. No anonymous analytics. No prompt or completion logging. No outbound telemetry except the provider and observability endpoints you explicitly configure.
The local demo starts a deterministic finite provider, InferQoS, an example client, and the operational dashboard.
git clone https://github.com/dlamaro96/inferqos.git
cd inferqos
just demo