# `ZenWebsocket.Examples.AdapterSupervisor`
[🔗](https://github.com/ZenHive/zen_websocket/blob/v0.4.2/lib/zen_websocket/examples/adapter_supervisor.ex#L1)

Supervisor for WebSocket adapters with fault tolerance.

This supervisor manages adapter GenServers alongside the ClientSupervisor,
creating a robust supervision tree where:

- ClientSupervisor manages Client GenServers
- AdapterSupervisor manages adapter GenServers
- Adapters monitor their Clients and handle reconnection

## Example

    children = [
      {ZenWebsocket.ClientSupervisor, []},
      {ZenWebsocket.Examples.AdapterSupervisor, [
        adapters: [
          {DeribitGenServerAdapter, [
            name: :deribit_main,
            client_id: "...",
            client_secret: "..."
          ]},
          {DeribitGenServerAdapter, [
            name: :deribit_backup,
            url: "wss://www.deribit.com/ws/api/v2",
            client_id: "...",
            client_secret: "..."
          ]}
        ]
      ]}
    ]
    
    Supervisor.start_link(children, strategy: :one_for_one)

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

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

Starts the adapter supervisor.

---

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