# `Chronicle.Connections.LoadBalancer.HttpProbe`
[🔗](https://github.com/Cratis/Chronicle.Elixir/blob/main/lib/chronicle/connections/load_balancer/http_probe.ex#L4)

Default HTTP transport for `Chronicle.Connections.LoadBalancer`'s
`:least_connections` strategy.

Talks to a Chronicle kernel's `GET /connections/count` and
`POST /connections/reserve` endpoints via `:httpc` (built into `:inets`, so
no extra dependency is needed). TLS is skipped when `disable_tls` is set,
and certificate validation is skipped by default (`skip_tls_validation` is
`true` unless set to `false`). Unlike gRPC and OAuth2, these probes do not
present a configured client certificate. A kernel requiring mutual TLS for
these HTTP endpoints cannot use the least-connections probe.

The `/connections/count` response body is accepted either as a bare integer
or as JSON with a `count` or `connections` key, since the exact response
shape is a Chronicle kernel implementation detail this client doesn't
otherwise depend on.

# `request`

```elixir
@spec request(
  :count | :reserve,
  Chronicle.Connections.ConnectionString.ServerAddress.t(),
  Chronicle.Connections.ConnectionString.t()
) :: {:ok, term()} | {:error, term()}
```

Performs the `:count` or `:reserve` HTTP probe against `address`.

---

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