# `Jido.Messaging.InstanceReconnectWorker`
[🔗](https://github.com/agentjido/jido_messaging/blob/v1.0.0/lib/jido_messaging/instance_reconnect_worker.ex#L1)

Per-instance lifecycle worker that runs connection probes and reconnect policy.

The worker performs periodic health probes and schedules bounded reconnect
attempts on recoverable failures. When retries are exhausted, it exits so the
enclosing supervisor can apply restart intensity policy.

# `state`

```elixir
@type state() :: %{
  instance_module: module(),
  instance: Jido.Messaging.Instance.t(),
  instance_server: pid(),
  channel_module: module() | nil,
  phase: :starting | :connected | :disconnected | :reconnecting | :degraded,
  probe_interval_ms: pos_integer(),
  max_reconnect_attempts: pos_integer(),
  reconnect_base_backoff_ms: pos_integer(),
  reconnect_max_backoff_ms: pos_integer(),
  reconnect_jitter_ratio: float(),
  current_attempt: non_neg_integer(),
  reconnect_reason: term() | nil,
  reconnect_started_at_ms: integer() | nil,
  timer_ref: reference() | nil
}
```

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

```elixir
@spec start_link(keyword()) :: GenServer.on_start()
```

---

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