Shared token-bucket rate limiter used by all bot instances.
reserve/3 returns how long the caller should wait before sending. Buckets
are keyed by target, which lets concurrent bot instances coordinate without
serializing unrelated channels.
Summary
Functions
Returns a specification to start this module under a supervisor.
Types
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec reserve(bucket_key(), rule(), GenServer.server()) :: non_neg_integer()
@spec start_link(keyword()) :: GenServer.on_start()