reckon_db_discovery (reckon_db v1.2.7)

View Source

Cluster discovery for reckon-db

Handles node discovery via UDP multicast (LAN) or Kubernetes DNS. Ported from LibCluster's gossip strategy.

Protocol: 1. Broadcast {gossip, Node, ClusterSecret, Timestamp} every BROADCAST_INTERVAL 2. On receive: verify secret, call net_kernel:connect_node/1 3. On node up: trigger Khepri cluster join via StoreCoordinator

Summary

Types

store_config/0

-type store_config() ::
          #store_config{store_id :: atom(),
                        data_dir :: string(),
                        mode :: single | cluster,
                        timeout :: pos_integer(),
                        writer_pool_size :: pos_integer(),
                        reader_pool_size :: pos_integer(),
                        gateway_pool_size :: pos_integer(),
                        options :: map()}.

Functions

get_discovered_nodes(StoreId)

-spec get_discovered_nodes(atom()) -> [node()].

Get list of discovered nodes

handle_call(Request, From, State)

handle_cast(Msg, State)

handle_info(Info, State)

init(Store_config)

start_link(Store_config)

-spec start_link(store_config()) -> {ok, pid()} | {error, term()}.

terminate(Reason, State)

trigger_discovery(StoreId)

-spec trigger_discovery(atom()) -> ok.

Trigger immediate discovery broadcast