Skip to main content

Module rate_limit

Module rate_limit 

Source
Expand description

Rate limiting cache using fixed window algorithm.

This module provides per-wallet rate limiting for:

  • Order placements
  • Order cancellations
  • API requests

Supports both Redis (for distributed rate limiting across multiple instances) and in-memory backends (for local development without Redis).

Structsยง

FixedWindowCounter ๐Ÿ”’
Fixed window counter for rate limiting (in-memory backend).
RateLimitCache
Rate limit cache using fixed window algorithm.
RateLimitInfo
Rate limit check result with metadata.

Enumsยง

RateLimitAction
Type of rate-limited action.
RateLimitBackend
Backend type for rate limiting.
RateLimitError
Error returned when rate limit is exceeded or service is unavailable.

Constantsยง

CHECK_AND_INCREMENT_LUA ๐Ÿ”’
Lua script for atomic check-and-increment in Redis. Returns {current_count, allowed (1=yes, 0=no)}
GET_COUNT_LUA ๐Ÿ”’
Lua script to get current count without incrementing.
REDIS_TTL_BUFFER_SECS ๐Ÿ”’
Extra TTL buffer to prevent race conditions at window boundaries (in seconds).