lib/remote.ex
defmodule NodeRegistry.Remote do
@moduledoc """
Defines remote/4 function to call a function on a remote node.
"""
@spec remote(atom(), module(), atom(), list()) :: any() | no_return()
def remote(name, mod, fun, args) do
case NodeRegistry.random_node_with_prefix(name) do
nil ->
raise "No node with prefix #{name} found"
node ->
:rpc.call(node, mod, fun, args)
end
end
end