macula_multi_relay (macula v3.13.0)
View SourceMulti-relay client — maintains N concurrent relay connections.
Wraps multiple macula_mesh_client instances for node multi-homing. Subscribes and advertises on ALL connections. Publishes via PRIMARY. Deduplicates incoming messages by message_id (ring buffer).
On primary failure: promotes secondary, connects a new secondary. Same API as macula_mesh_client for drop-in replacement.
Usage:
Opts = #{relays => [R1, R2, R3, R4, R5],
connections => 2, %% default 2
realm => <<"io.macula">>,
identity => <<"my-node">>},
{ok, Pid} = macula_multi_relay:start_link(Opts).
Summary
Functions
Try an RPC call on each connected relay in sequence. Returns the first successful result or the last error. Useful for cross-relay operations where the target may be on a different relay.