Bounded retry/backoff policy for transient platform send failures.
Adapters can return {:error, {:rate_limited, retry_after_ms}} to let the
dispatcher sleep for a platform-provided interval before retrying. Other
retryable errors use exponential backoff with a configurable cap.
Summary
Types
@type t() :: %GelotvBot.RetryPolicy{ base_backoff: pos_integer(), max_attempts: pos_integer(), max_backoff: pos_integer() }
Functions
@spec retry_delay(term(), pos_integer(), t()) :: {:retry, non_neg_integer()} | :halt