Rate Limiting
Protect your API with intelligent rate limiting using Upstash Redis
Overview
Tusflow uses Upstash Ratelimit for distributed rate limiting. The rate limiting middleware protects your API from abuse by limiting request frequency based on IP address and HTTP method.
Different rate limits are applied for various operations (uploads, chunks, metadata) to optimize for real-world usage patterns.
Implementation
The rate limiting middleware uses Upstash's Redis client with sliding window algorithm:
Configuration
Rate limits are configured in ratelimit-config.ts
:
Rate Limit Headers
The middleware sets standard rate limit headers:
Integration
Rate limiting is part of the security middleware stack:
Features
-
Method-Based Limits
- Different limits for uploads vs chunks
- Configurable per HTTP method
- Default fallback limits
- Flexible token allocation
-
Distributed Rate Limiting
- Redis-backed storage
- Sliding window algorithm
- Global rate limit state
- High availability
-
Smart Rate Limiting
- IP-based identification
- Cloudflare integration
- Automatic header management
- Graceful error handling
Error Handling
When rate limit is exceeded:
Best Practices
Configure Limits
- Set appropriate token counts
- Adjust time windows
- Configure block duration
- Enable in production
Monitor Usage
- Track rate limit headers
- Monitor blocked requests
- Set up alerts
- Analyze patterns
Handle Failures
- Implement retry logic
- Respect retry-after
- Cache rate limit state
- Handle errors gracefully
Example Usage
Always test rate limiting configuration in staging before deploying to production to ensure it doesn't impact legitimate users.
Last updated on