Finitomata.ClusterInfo behaviour (Finitomata v0.34.0)

View Source

The behaviour to be implemented for locating the node across the cluster.

Infinitomata comes with a default naïve implementation, which simply responds with a determined random value for whois/1 and with all visible nodes list for nodes/0.

The call to Finitomata.ClusterInfo.init/1 passing the module implementing the desired behaviour is mandatory before any call to Infinitomata.start_fsm/4 to preserve a determined consistency.

Summary

Callbacks

Returns nodes available to select from for the given Finitomata instance.

Returns the node “selected” for this particular id

Functions

Call this function to select an implementation of a cluster lookup

Delegates to the selected implementation of a cluster lookup

Delegates to the selected implementation of a cluster lookup

Callbacks

nodes(id)

@callback nodes(Finitomata.id()) :: [node()]

Returns nodes available to select from for the given Finitomata instance.

If the instance is false, should return all the nodes for all instances.

whois(id)

@callback whois(id :: term()) :: node() | nil

Returns the node “selected” for this particular id

Functions

init(impl)

Call this function to select an implementation of a cluster lookup

nodes(id \\ false, self? \\ false)

Delegates to the selected implementation of a cluster lookup

whois(fini_id \\ false, id)

Delegates to the selected implementation of a cluster lookup