Kusk Gateway Rate Limit Not Throttling
You encounter a kusk configuration issue that prevents your workflow from completing. This guide walks through the fix step by step.
Wrong ❌
x-envoy-rate-limit:
domain: my-api
descriptors: [{ key: generic_key, value: standard, rate_limit: { requests_per_unit: 10, unit: second } }]
Wrong Output
Rate limiting not enforced. All requests pass through. Rate limit service not configured.
Right ✅
apiVersion: kusk.io/v1alpha1
kind: RateLimit
metadata: { name: my-rate-limit }
spec:
domain: my-api
descriptors: [{ key: generic_key, value: standard, rate_limit: { requests_per_unit: 10, unit: second } }]
Right Output
Rate limiting enforced. Client exceeding 10 req/s receives 429.
Prevention
- Deploy RateLimit custom resource alongside the spec.
- Configure rateLimitService for Envoy cluster.
- Test with load testing tool (k6, hey).
- Use per-descriptor limits for granular control.
- Monitor 429 responses in Envoy access logs.
DodaTech applies similar defensive patterns across Doda Browser, DodaZIP, and Durga Antivirus Pro infrastructure for production reliability.
Common Mistakes with gateway rate limit
- Using
foldlinstead offoldl'causing stack overflow on large lists - Forgetting
deriving (Show, Eq)on custom data types needed for debugging - Placing the wildcard pattern first in case expressions, making all subsequent patterns unreachable
These mistakes appear frequently in real-world KUSK code. DodaTech's contributors have identified these patterns through analysis of open-source projects and production systems.
Practice Exercise
Write a pure function that safely divides two integers using Maybe, then test it with edge cases like division by zero and negative numbers.
This exercise reinforces the concepts covered in this guide. Try implementing it before checking online solutions.
FAQ
This quick fix is part of the DodaTech infrastructure engineering series. Learn more at DodaTech tutorials.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro