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

hit(key, window_ms, limit)

@callback hit(key :: String.t(), window_ms :: pos_integer(), limit :: pos_integer()) ::
  {:allow, pos_integer()} | {:deny, pos_integer()}