# ClusterHelper v1.0.0 - Table of Contents

> A tiny library for lookup node(s) in dynamic clustering. Map node to roles or id and allows you to easily select node(s) by role/id.

## Pages

- [Overview](readme.md)
- [Adapters](adapters.md)
- [Configuration](configuration.md)
- [Getting Started](getting_started.md)
- [Scopes](scopes.md)
- [Telemetry](telemetry.md)

## Modules

- [ClusterHelper](ClusterHelper.md): A helper module for managing dynamic Elixir clusters with **overlapping scope** support.
- [ClusterHelper.Adapter](ClusterHelper.Adapter.md): Registry for ClusterHelper pluggable adapters.
- [ClusterHelper.Broadcast](ClusterHelper.Broadcast.md): Behaviour for cluster-wide messaging.
- [ClusterHelper.Broadcast.PG](ClusterHelper.Broadcast.PG.md): Broadcast adapter backed by Erlang `:pg` process groups.
- [ClusterHelper.ClusterState](ClusterHelper.ClusterState.md): Pure domain state transformations for cluster membership.
- [ClusterHelper.Config](ClusterHelper.Config.md): Configuration struct for `ClusterHelper`.
- [ClusterHelper.ETSStore](ClusterHelper.ETSStore.md): ETS-based implementation of `ClusterHelper.RoleStore`.
- [ClusterHelper.EventHandler](ClusterHelper.EventHandler.md): Optional callback behaviour for `ClusterHelper` events.
- [ClusterHelper.NodeConfig](ClusterHelper.NodeConfig.md): GenServer that orchestrates cluster role management.
- [ClusterHelper.PullEngine](ClusterHelper.PullEngine.md): Coordinates background pull operations for cluster synchronisation.
- [ClusterHelper.RemoteSync](ClusterHelper.RemoteSync.md): Behaviour for remote Erlang RPC operations used in cluster synchronisation.
- [ClusterHelper.RemoteSync.ERPC](ClusterHelper.RemoteSync.ERPC.md): Remote sync adapter using Erlang's `:erpc.call` for distributed RPC.
- [ClusterHelper.RoleStore](ClusterHelper.RoleStore.md): Port (behaviour) for role data storage.
- [ClusterHelper.Telemetry](ClusterHelper.Telemetry.md): Telemetry events emitted by ClusterHelper.

