Last updated 2026-05-18
Architecture
The service is deployed independently per product. Every deployment owns its Redis data, optional event sink, and runtime security boundary.
Product A -> quota-service -> Product A Redis -> Product A event sinkProduct B -> quota-service -> Product B Redis -> Product B event sinkProduct C -> quota-service -> Product C Redis -> Product C event sinkShared across deployments
- Docker image
- gRPC API
- protobuf schema
- Redis scripts
- documentation
Not shared across deployments
- Redis counters
- reservation and lease records
- historical usage events
- tenant, user, or customer data
Hot path
- Check idempotency for the request ID.
- Validate supplied limits.
- Evaluate all limits in one Redis Lua script.
- Deny without mutation if any limit fails.
- Mutate all impacted keys when every limit allows.
- Return a decision and per-limit statuses.