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

Backoff delay calculation with configurable strategies and jitter.

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

```elixir
@spec delay(Foundation.Backoff.Policy.t(), non_neg_integer()) :: non_neg_integer()
```

Compute the delay for the given attempt based on policy.

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

```elixir
@spec sleep(Foundation.Backoff.Policy.t(), non_neg_integer(), (non_neg_integer() -&gt;
                                                           any())) :: :ok
```

Sleep for the computed delay, using the provided sleep function.

---

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