003. Waku as rendezvous, not a live control plane

Status: accepted

Context

The natural reading of "use a messaging network instead of a coordination server" is to put the control plane on it: peers continuously subscribed, endpoint updates gossiped in real time.

Decision

Waku is a bootstrap and repair channel. It is used at cold start, on network change, and to repair a partition. It is not required in steady state.

Why

WireGuard relearns a peer's endpoint from any correctly-authenticated packet. A node that roams and sends first is relearned by every peer with no signalling at all. With PersistentKeepalive set, that is self-healing.

So the steady state needs no control plane, and once any tunnel exists the mesh can carry its own control traffic — the pattern wesher and tinc use.

Three consequences make this more than an optimisation:

Consequences