Infinitomata (Finitomata v0.34.0)
View SourceThe sibling of Finitomata, but runs transparently in the cluster.
If you want to use a stateful consistent hash ring like libring,
  implement the behaviour Finitomata.ClusterInfo wrapping calls to it and 
  invoke Finitomata.ClusterInfo.init(Impl) before using Infinitomata.start_fsm/4.
The example of such an implementation for libring (assuming the named ring @ring
  has been started in the supervision tree) follows.
defmodule MyApp.ClusterInfo do
  @moduledoc false
  @behaviour Finitomata.ClusterInfo
  @impl Finitomata.ClusterInfo
  def nodes(_fini_id), do: HashRing.nodes(@ring) -- [node()]
  @impl Finitomata.ClusterInfo
  def whois(_fini_id, id), do: HashRing.key_to_node(@ring, id)
end
    Summary
Functions
Count of children
Returns the random FSM from the pool
Starts the FSM in the distributed environment. See Finitomata.start_fsm/4 for docs and options
Synchronizes the local Infinitomata instance with the cluster
Functions
Count of children
Returns the random FSM from the pool
@spec start_fsm(Finitomata.id(), Finitomata.fsm_name(), module(), any()) :: DynamicSupervisor.on_start_child()
Starts the FSM in the distributed environment. See Finitomata.start_fsm/4 for docs and options
@spec synch(Finitomata.id(), [node()] | false) :: :ok
Synchronizes the local Infinitomata instance with the cluster