discovery.Provider interface. Pass the provider to ClusterConfig.WithDiscovery() when creating the cluster.
Provider interface
| Method | Purpose |
|---|---|
| ID | Provider name. |
| Initialize | One-time setup (e.g., connect to backend). |
| Register | Register this node with the discovery backend. |
| Deregister | Remove this node on shutdown. |
| DiscoverPeers | Return peer addresses as host:port strings. |
| Close | Release resources. |
Built-in providers
| Provider | Package | Use case |
|---|---|---|
| Consul | discovery/consul | HashiCorp Consul. |
| etcd | discovery/etcd | etcd. |
| Kubernetes | discovery/kubernetes | K8s API for pod discovery. |
| NATS | discovery/nats | NATS for peer discovery. |
| mDNS | discovery/mdns | Multicast DNS (local networks). |
| DNS-SD | discovery/dnssd | DNS-based service discovery. |
| Static | discovery/static | Fixed list of peer addresses. |
| Self-managed | discovery/selfmanaged | UDP broadcast on LAN; no peer config. |
Self-managed (zero config)
The self-managed provider uses UDP broadcast for peer discovery. No third-party services or peer IPs are required; nodes on the same LAN discover each other automatically.Configuration
WithRemote) for cross-node communication.
Custom provider
Implementdiscovery.Provider and pass it to WithDiscovery. See Extending GoAkt for the interface and wiring.