Beethoven.Locator (Beethoven v0.3.9)

GenServer to handle searching for other Beethoven nodes or clusters. This Locator server's goal is to find a BeaconServer on another node. Once connected, they will communicate with each other via the Beethoven.SeekChat module.

Modes

  • :seeking -> Currently Searching for listening servers.
  • :watching -> (TBD) Slower search to ensure there are no standalone clusters or nodes.

:seeking

Service will start up and perform a seeking operation. The locator will start the Core service(s) (via Substrate) once either is met:

  • (1). Seeking attempts have become exhausted. [CoreServer <- :standalone]
  • (2). A listener server is found. [CoreServer <- :clustered]

:watching (WIP)

Used when the cluster is in standalone mode. This mode will continue the scan for other clusters. This is needed to ensure there are no other clusters existing at the same time.

Summary

Functions

Returns a specification to start this module under a supervisor.

Entry point for a supervisor.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_link(args)

@spec start_link(any()) :: GenServer.on_start()

Entry point for a supervisor.