Rate Limiting

RouteMQ includes advanced rate limiting middleware with multiple strategies and Redis backend support.

Topics

Quick Overview

from app.middleware.rate_limit import RateLimitMiddleware

# Basic rate limiting - 100 requests per minute
rate_limit = RateLimitMiddleware(
    max_requests=100,
    window_seconds=60,
    strategy="sliding_window"
)

# Apply to routes
router.on("api/{endpoint}", Controller.handle, middleware=[rate_limit])

Rate Limiting Strategies

1. Sliding Window (Most Accurate)

Uses Redis sorted sets for precision:

2. Fixed Window (Simple)

Resets at window boundaries:

3. Token Bucket (Allows Bursts)

Allows burst traffic:

Advanced Rate Limiting

Topic-Specific Limits

Client-Based Limits

Advanced Features

Next Steps

Last updated