| name | rate-limiter-designer |
| description | Design and implement rate limiting strategies |
| allowed-tools | ["Read","Write","Edit","Glob","Grep","Bash"] |
| graph | {"domains":["domain:software-engineering"],"specializations":["specialization:sdk-platform-development"],"skillAreas":["skill-area:rate-limiting","skill-area:api-design"],"roles":["role:platform-engineer"],"topics":["topic:api-design","topic:developer-experience"]} |
Rate Limiter Designer Skill
Overview
This skill designs and implements rate limiting strategies including token bucket, sliding window, and quota systems to protect APIs while providing fair access.
Capabilities
- Implement token bucket and leaky bucket algorithms
- Configure per-key and per-user limits
- Design quota and usage systems
- Generate rate limit HTTP headers
- Implement distributed rate limiting
- Configure burst allowances
- Design rate limit tiers
- Handle rate limit exceeded responses
Target Processes
- Platform API Gateway Design
- Authentication and Authorization Patterns
- Developer Portal Implementation
Integration Points
- Redis for distributed state
- Rate limiting middleware
- API gateway plugins
- CDN rate limiting
- Database-backed quotas
Input Requirements
- Rate limit requirements
- Tier definitions
- Burst allowances
- Distribution strategy
- Header conventions
Output Artifacts
- Rate limiting implementation
- Quota management system
- Rate limit headers
- Tier configuration
- Admin management API
- Usage tracking
Usage Example
skill:
name: rate-limiter-designer
context:
algorithm: sliding-window
storage: redis
tiers:
- name: free
requests: 100
window: 1h
burst: 10
- name: pro
requests: 10000
window: 1h
burst: 100
headers:
limit: X-RateLimit-Limit
remaining: X-RateLimit-Remaining
reset: X-RateLimit-Reset
responses:
exceeded:
status: 429
retryAfter: true
Best Practices
- Use sliding window for accuracy
- Include burst allowances
- Return standard rate limit headers
- Provide clear Retry-After values
- Implement distributed limiting
- Design fair quota systems