Beethoven.Locator (Beethoven v0.1.0)

Module for finding a Beethoven listener.

Summary

Functions

Attempts join to a Beethoven Listener Socket server hosted on another Elixir node. Using the provided socket info, the client will attempt to connect to the socket and deliver its node uri as a payload.

Iterates through a list of IPs and tries to find one running a Beethoven Listener. Same returns as try_join/2.

Functions

try_join(ipAddr, port)

@spec try_join({integer(), integer(), integer(), integer()}, integer()) ::
  :ok | :cluster_join_error | :copy_error | :coord_listener_conn_error

Attempts join to a Beethoven Listener Socket server hosted on another Elixir node. Using the provided socket info, the client will attempt to connect to the socket and deliver its node uri as a payload.

NOTE: this will not set if this client will hold ram_copies of the Mnesia data. Please use copy_mnesia_table/2 to achieve this once joined.

try_join_iter(ipList, port)

@spec try_join_iter([{integer(), integer(), integer(), integer()}], integer()) ::
  :ok | :cluster_join_error | :copy_error | :none_found

Iterates through a list of IPs and tries to find one running a Beethoven Listener. Same returns as try_join/2.