Mercury.Retry (mercury_client v1.0.0)

Copy Markdown View Source

Controls retry behaviour for transient failures (rate limiting and 5xx server errors). Retries use exponential backoff with jitter, and honour the Retry-After header when Mercury returns one on a 429.

Pass a custom policy via Mercury.Client.new/2's :retry option:

Mercury.Client.new(api_key, retry: %Mercury.Retry{max_retries: 5})

Set max_retries: 0 to disable retries entirely.

Summary

Functions

The default retry policy: 3 retries, 500ms base delay, 30s cap, ±25% jitter.

Types

t()

@type t() :: %Mercury.Retry{
  initial_delay: non_neg_integer(),
  jitter_factor: float(),
  max_delay: non_neg_integer(),
  max_retries: non_neg_integer()
}

Functions

default()

@spec default() :: t()

The default retry policy: 3 retries, 500ms base delay, 30s cap, ±25% jitter.