# `Honeybadger.EventsWorker`
[🔗](https://github.com/honeybadger-io/honeybadger-elixir/blob/v0.30.2/lib/honeybadger/events_worker.ex#L1)

A GenServer that batches and sends events with retry and throttling logic.

It accumulates events in a queue, forms batches when the batch size is reached or
when a flush timeout expires, and then sends these batches to a backend module.
If a batch fails to send, it will be retried (up to a configurable maximum) or dropped.
In case of throttling (e.g. receiving a 429), the flush delay is increased.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `push`

```elixir
@spec push(event :: map(), GenServer.server()) :: :ok
```

# `start_link`

```elixir
@spec start_link(Keyword.t()) :: GenServer.on_start()
```

# `state`

```elixir
@spec state(GenServer.server()) :: Honeybadger.EventsWorker.State.t()
```

---

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