# `Foundation.Backoff.Policy`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/backoff.ex#L6)

Backoff policy configuration.

# `jitter_strategy`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/backoff.ex#L12)

```elixir
@type jitter_strategy() :: :none | :factor | :additive | :range
```

# `rand_fun`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/backoff.ex#L13)

```elixir
@type rand_fun() :: (-&gt; float()) | (pos_integer() -&gt; pos_integer())
```

# `strategy`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/backoff.ex#L11)

```elixir
@type strategy() :: :exponential | :linear | :constant
```

# `t`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/backoff.ex#L15)

```elixir
@type t() :: %Foundation.Backoff.Policy{
  base_ms: pos_integer(),
  jitter: float() | {float(), float()},
  jitter_strategy: jitter_strategy(),
  max_ms: pos_integer() | nil,
  rand_fun: rand_fun(),
  strategy: strategy()
}
```

# `new`
[🔗](https://github.com/nshkrdotcom/foundation/blob/v0.2.1/lib/foundation/backoff.ex#L44)

```elixir
@spec new(keyword()) :: t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
