Last updated 2026-05-18

gRPC Service

The source of truth is quota/v1/quota.proto.

service QuotaService {
rpc Consume(ConsumeRequest) returns (ConsumeResponse);
rpc Reserve(ReserveRequest) returns (ReserveResponse);
rpc IncrementReservation(IncrementReservationRequest) returns (IncrementReservationResponse);
rpc FinalizeReservation(FinalizeReservationRequest) returns (FinalizeReservationResponse);
rpc ReleaseReservation(ReleaseReservationRequest) returns (ReleaseReservationResponse);
rpc AcquireLease(AcquireLeaseRequest) returns (AcquireLeaseResponse);
rpc RenewLease(RenewLeaseRequest) returns (RenewLeaseResponse);
rpc ReleaseLease(ReleaseLeaseRequest) returns (ReleaseLeaseResponse);
rpc Explain(ExplainRequest) returns (ExplainResponse);
rpc GetCurrentUsage(GetCurrentUsageRequest) returns (GetCurrentUsageResponse);
rpc ValidateLimits(ValidateLimitsRequest) returns (ValidateLimitsResponse);
rpc GetReservation(GetReservationRequest) returns (Reservation);
rpc GetLease(GetLeaseRequest) returns (Lease);
rpc GetRedisStatus(GetRedisStatusRequest) returns (RedisStatus);
}

Consume

Known-cost actions. If any limit denies, no counters are mutated.

Reserve and finalize

Estimated-cost actions. A reservation records exact Redis impact keys so increment, finalization, and release do not recompute current windows. Positive IncrementReservation deltas re-check stored impacts atomically; negative deltas release refundable impacts.

Lease operations

Active concurrency through AcquireLease, RenewLease, and ReleaseLease.

Inspection

Explain, GetCurrentUsage, ValidateLimits, GetReservation, GetLease, and GetRedisStatus are read-oriented support RPCs.