AshRateLimiter. Backend behaviour
(ash_rate_limiter v2.0.1)
Copy Markdown
A behaviour for rate limiting backends.
Implement this behaviour to provide a custom rate limiting backend for use with AshRateLimiter.
Example
defmodule MyApp.RateLimiter do
@behaviour AshRateLimiter.Backend
@impl true
def hit(key, window_ms, limit) do
# Your rate limiting logic here
{:allow, 1}
end
end
Summary
Callbacks
@callback hit(key :: String.t(), window_ms :: pos_integer(), limit :: pos_integer()) :: {:allow, pos_integer()} | {:deny, pos_integer()}