All insights

Inference economics

How to Encode Per-Tenant Admission Priorities Without Exposing Quota or Capacity Data

Encode admission priority as a tenant-scoped service-intent class, then resolve that class through a trusted server-side policy map. Client-visible metadata should never contain quotas, remaining allowance, capacity shares, scheduler weights, queue positions, utilization, or global rank. Return only coarse admission outcomes and keep authoritative scheduling state inside the control plane.

Encode admission priority as a tenant-scoped service-intent class, then resolve that class through a trusted server-side policy map. Client-visible metadata should never contain quotas, remaining allowance, capacity shares, scheduler weights, queue positions, utilization, or global rank. Return only coarse admission outcomes and keep authoritative scheduling state inside the control plane.

A practical request path looks like this:

  1. Authenticate the tenant and workload identity.
  2. Verify that the workload may request the supplied service-intent class.
  3. Validate the claim's audience, expiry, issuer, and policy version.
  4. Resolve the tenant-local class against current server-side policy.
  5. Convert that policy into internal routing, batching, caching, or GPU-scheduling inputs.
  6. Return a coarse result such as accepted, deferred, rate_limited, or rejected.

This pattern reduces direct disclosure through request metadata. It does not, by itself, eliminate indirect leakage through latency, throttling, retries, telemetry, or traffic analysis.

Recommended pattern: expose tenant-local service intent, not scheduler state

The admission interface should let a customer state what kind of service a request needs without showing how the platform allocates shared resources. That separation creates a clear boundary between customer-controlled request metadata and trusted scheduling policy.

An external class answers a question such as “Is this request interactive or deferrable?” It should not answer “How much capacity does this tenant own?” or “Where does this request rank against other tenants?”

Use opaque classes such as interactive, standard, or batch

Useful classes describe workload intent:

  • interactive for user-facing work that should be considered for latency-sensitive handling
  • standard for normal online processing without a special urgency signal
  • batch for work that can generally tolerate deferred or aggregated execution
  • An opaque class identifier such as pc_7d2 when even the class meaning should not be readable outside the control plane

These labels are requests for a service policy, not promises of a particular queue position or response time. They should not encode numerical importance, remaining allowance, a percentage of GPU capacity, or a globally comparable priority.

The namespace should also be tenant-local. Tenant A's interactive class need not map to the same internal weight, concurrency limit, routing rule, or admission threshold as Tenant B's interactive class. The shared label communicates similar service intent, but it does not expose comparable entitlement.

Where callers do not need to choose among classes, the platform can derive service intent from an authorized workload profile. For example, a registered chat application and an approved batch pipeline can receive different tenant-local policies without allowing arbitrary client-selected priority escalation.

Resolve each class through a server-side tenant policy map

The authoritative mapping belongs in a trusted control plane rather than in headers, request bodies, API keys, or readable bearer-token claims. A conceptual policy key could combine:

  • Tenant identity
  • Workload or application identity
  • Requested priority class
  • Policy version
  • Deployment or model context

The resolved policy can then supply internal inputs to the relevant serving components. Depending on the architecture, those inputs may affect admission thresholds, model routing, batching eligibility, cache policy, or GPU scheduling. They remain internal implementation data and should not be echoed to the caller.

A simplified conceptual mapping might be:

```text (tenant_A, support_chat, interactive, policy_v12) -> internal policy object A-17

(tenant_B, support_chat, interactive, policy_v8) -> internal policy object B-04 ```

The example deliberately avoids showing what either internal object contains. The important property is that the same external service-intent label does not expose whether the tenants have equivalent quotas, weights, capacity commitments, or scheduler treatment.

Keeping the mapping server-side also supports policy changes without requiring customers to receive new capacity values. Operators can update an entitlement or scheduling rule while preserving the external contract, subject to appropriate versioning and rollout controls.

Authorize the class before making an admission decision

Priority metadata should not be trusted merely because it is syntactically valid. The admission service should validate, in order appropriate to the system:

  1. Tenant identity: Determine the tenant from authenticated credentials, not from an untrusted request field alone.
  2. Workload identity: Identify the application, service account, agent, or job submitting the request.
  3. Class permission: Confirm that this tenant-workload pair may request the stated class.
  4. Token validity: Check issuer, audience, integrity protection, expiry, and any applicable not-before condition.
  5. Policy version: Resolve an accepted version or apply a defined fail-closed rule for stale, unknown, or revoked policy references.
  6. Replay controls: Where duplicate use creates risk, bind the authorization to an operation or use a nonce, request identifier, or server-maintained replay record.
  7. Current server policy: Apply authoritative entitlement, quota, utilization, and resource state only after identity and authorization checks succeed.

Authentication and signing are not substitutes for authorization. A correctly signed request from Tenant A should not be able to select a class reserved for a different workload or tenant.

Never expose raw quotas, queue positions, weights, or global ranks

Customer-readable admission metadata should exclude fields such as:

  • Remaining tokens or requests
  • Current quota consumption
  • Capacity percentages or reserved GPU shares
  • Queue depth or predicted queue position
  • Internal scheduler weights
  • Global priority numbers
  • Cluster utilization or available accelerators
  • Another tenant's activity or policy

Hashing, renaming, or Base64-encoding these values does not make them confidential. Even a signed claim can expose them because a signature protects integrity, not readability.

The response boundary matters as much as the request boundary. Prefer a small result vocabulary such as:

  • accepted
  • deferred
  • rate_limited
  • rejected

Avoid explanations such as “rejected because another tenant is using 80% of the pool” or “retry when queue depth falls below 20.” Exact retry times can also become a capacity oracle. When retry guidance is necessary, use bounded or bucketed guidance and consider adding controlled jitter, while ensuring clients still receive enough information to behave safely.

A minimal admission claim that omits quota and capacity fields

A portable admission claim should contain only what the receiving service needs to authenticate the request context, authorize the requested intent, and select the correct policy. It should not carry the policy's underlying quota or scheduler values.

Example schema for tenant, workload, policy, audience, and expiry

The following JSON is an illustrative, vendor-neutral claim payload rather than a Token Forge Cloud API contract:

``json { "tenant_ref": "tnt_7f3a", "subject": "workload_21c9", "priority_class": "pc_04", "workload_class": "interactive_chat", "policy_version": "pv_12", "audience": "inference-admission", "expires_at": "2026-09-17T15:05:00Z" } ``

In this design:

  • tenant_ref and subject are identifiers that must be bound to authenticated identities.
  • priority_class is an opaque, tenant-scoped policy reference rather than a numerical rank.
  • workload_class describes the authorized workload category without revealing resource entitlement.
  • policy_version tells the control plane which compatible policy generation to resolve.
  • audience prevents a claim intended for admission control from being accepted by an unrelated service.
  • expires_at limits how long the claim can be reused.

If a tenant identifier or workload category is itself sensitive, place it in an encrypted claim or keep it behind an opaque server-side reference. Simply signing the example payload would detect unauthorized modification, but anyone able to read the token could still inspect its plaintext fields.

Fields that must remain in the trusted control plane

The portable claim should point to policy, not duplicate it. The trusted control plane should remain authoritative for:

  • Tenant entitlements and quota limits
  • Current consumption and utilization
  • Internal priority weights and admission thresholds
  • Concurrency, token, or request budgets
  • Routing rules and model eligibility
  • Batching windows and scheduling parameters
  • Cache admission or sharing policy
  • GPU availability, allocation, and queue state
  • Policy revocation and version compatibility

This separation prevents a stale claim from becoming a stale entitlement. Even when a claim carries a valid policy version, the admission service can apply current revocation status and operational policy before accepting the request.

Opaque reference tokens versus encrypted self-contained claims

When portable authorization is required, two common patterns are opaque reference tokens and encrypted self-contained claims. Neither is universally preferable; the decision depends on lookup tolerance, revocation needs, policy freshness, and operational maturity.

Decision factorOpaque reference tokenEncrypted self-contained claim
Client-visible contentsRandom or non-meaningful referenceProtected claim contents when encryption is correctly applied
Control-plane lookupUsually required for validation and policy resolutionMay reduce lookup dependence, although current policy checks can still require server access
RevocationDirect when the reference is disabled or removedOften depends on short expiry, revocation records, or key and version controls
Policy freshnessCurrent policy can be resolved on each lookupEmbedded claims can become stale before expiry
Key managementIntegrity and secure token generation still matterRequires encryption-key lifecycle, rotation, algorithm controls, and recipient handling
Replay controlsCan be tracked centrally when neededMay require nonces, request binding, short expiry, or replay state
Operational complexityAdds a highly available lookup pathAdds cryptographic and claim-lifecycle complexity

Opaque references are often attractive when immediate revocation and fresh policy resolution are important. Their main tradeoff is the availability and latency of the lookup path. Caching can reduce lookup demand, but cache lifetime must be balanced against revocation and policy freshness.

Encrypted self-contained claims can carry necessary authorization context across service boundaries without exposing it to the client. They still require issuer validation, audience binding, short expiration, controlled key distribution, rotation, and replay analysis. Encryption also does not remove the need to check current tenant status when policy can change during the claim's lifetime.

Separate admission policy from observable scheduler behavior

Removing quota fields from tokens prevents one direct disclosure channel, but customers may still infer shared conditions from system behavior. Potential signals include:

  • Changes in acceptance or rejection rates
  • Response-latency patterns
  • Highly precise retry intervals
  • Different error text for capacity and policy failures
  • Headers containing limits, queue estimates, or utilization
  • Metrics labeled with shared resource state
  • Logs or dashboards accessible across tenant boundaries
  • Batch timing or cache behavior correlated with other traffic

Mitigation should be layered. Use coarse external outcomes, bounded retry guidance, stable error categories, and least-privilege access to operational telemetry. Separate tenant-facing dashboards and logs so one tenant cannot query another tenant's labels, identifiers, request volume, or policy state. Shared administrative views should be restricted to authorized operators.

Side-channel testing should include controlled experiments across multiple tenant identities. Review whether one caller can infer another tenant's activity by varying request rate, workload type, priority class, timing, or retry behavior. The goal is to reduce useful disclosure while recognizing that shared-resource systems may retain observable timing and throttling effects.

Implementation evaluation checklist

Before deploying a per-tenant admission interface, verify that:

  • Confidentiality: Client-readable metadata contains service intent, not raw quota, capacity, utilization, queue, or weight data.
  • Tenant scoping: Priority classes are interpreted within the authenticated tenant and workload context.
  • Authorization: Each workload may request only its permitted classes.
  • Integrity: Claims or references cannot be modified without detection.
  • Content protection: Sensitive claim contents use encryption or opaque references rather than signatures, hashing, or encoding alone.
  • Audience and issuer validation: Claims are accepted only from trusted issuers and by intended services.
  • Expiry and revocation: Tokens are short-lived or revocable according to the workload's risk and operational needs.
  • Policy updates: Stale and unknown policy versions have explicit handling rules.
  • Replay handling: Reuse is constrained where repeated presentation could bypass intended controls.
  • Fail-closed behavior: Invalid identities, unauthorized classes, and unresolved policies do not silently receive elevated treatment.
  • Auditability: Operators can reconstruct authorization and policy decisions without exposing sensitive records to other tenants.
  • Response minimization: Errors and retry instructions do not reveal queue depth, capacity, or competing activity.
  • Observability isolation: Logs, metrics, traces, and dashboards are tenant-separated and access-controlled.
  • Side-channel review: Timing, throttling, retry, cache, and traffic-analysis signals are tested rather than assumed away.

A private inference control plane is a natural place to maintain the policy and scheduling boundary described in this guide. Token Forge Cloud Private LLM Inference supports private deployment paths where models, prompts, and telemetry remain in the customer's controlled environment. Token Forge Cloud also treats latency-sensitive chat, batch enrichment, and agentic workflows as different serving-policy problems. The exact admission metadata, authorization model, and token design should be selected for each deployment rather than inferred from those broader capabilities.

Contact Token Forge Cloud to discuss API access, private deployment, and LLM inference cost control.

Contact us