liaison

Keeping nodes connected


License
MIT

Documentation

liaison

Clustering and auto-reconnection of elixir nodes

Liaison aims to allow simple configuration to ensure that nodes are, and remain, connected

Installation

def deps do
    [
        {:liaison, "~> 0.1"}
    ]
end

Configuration

config :liaison,
    strategies: [
        [
            # connect via epmd
            strategy: Liaison.Strategy.Epmd,
            # A list of nodes to connect to. See node expansion
            nodes: []
            # number of seconds between polling a connection attempt
            reconnect_period: 10
        ]
    ]

Node expansion

Node expansion makes connecting to other nodes easier. Any of the following can be used with nodes

All formats can be either String.t() | atom()

description format expansion
simple shortname name :name@localhost
simple longname name@host :name@host
simple ip longname name@a.b.c.d :"name@a.b.c.d
simple component shortname %{name: name} :name@localhost
random 6 digit shortname %{name: :random} :2ndel6@localhost
random n digit shortname %{name: [random: 3]} :2fk@localhost
component shortname %{name: name, host: :shortname} :name@localhost
component longname %{name: name, host: :longname} :name@w.x.y.z
component fullname %{name: name, host: host} :name@host
component ip fullname %{name: name, host: a.b.c.d} :"name@a.b.c.d

Debug logging

To enable debug logging, add debug: true to your config

Testing

If you are having trouble testing the module, ensure that epmd is started epmd -daemon, or iex --sname name then exit