# `Tink.HTTPAdapter`
[🔗](https://github.com/iamkanishka/tink.ex/blob/v0.1.1/lib/tink/http_adapter.ex#L1)

Production HTTP client implementation using Finch.

This module implements the `Tink.HTTPBehaviour` interface and provides
a high-performance HTTP client built on top of Finch and Mint.

## Features

- ⚡ Connection pooling via Finch
- 🔄 Automatic retries with exponential backoff
- ⏱️ Configurable timeouts
- 📊 Telemetry integration
- 🔍 Request/response logging
- 🌐 HTTP/1.1 and HTTP/2 support

## Configuration

The adapter respects Tink configuration:

    config :tink,
      timeout: 30_000,
      max_retries: 3,
      pool_size: 32

## Telemetry

Emits the following telemetry events:

- `[:tink, :request, :start]` - Request initiated
- `[:tink, :request, :stop]` - Request completed
- `[:tink, :request, :exception]` - Request failed

## Examples

    # Direct usage
    {:ok, response} = Tink.HTTPAdapter.request(
      :get,
      "https://api.tink.com/api/v1/providers",
      nil,
      [{"authorization", "Bearer token"}],
      timeout: 5_000
    )

    # Used automatically by Tink.Client
    client = Tink.client()
    {:ok, accounts} = Tink.Accounts.list(client)

# `build_request`

---

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