Decisions

0003 — Controllerless pairing: consumer-owned state, versioned intents

Date: 2026-08-08. Status: accepted.

No process may be required to run continuously for the mesh to work or reconfigure. Options considered:

  • Central controller (rejected: single point of failure, explicit requirement against it).
  • Distributed consensus (Raft etc.) (rejected: needs quorum membership management; overkill — there is no shared datum, each consumer's pairing is independent).
  • Consumer-owned state + totally ordered intents (accepted): each consumer is the sole authority for its own pairing. Intents are multicast, carry a Lamport-counter/origin-id version, and the highest version wins idempotently. Announcements replicate state for visibility; peers cache the newest intent per consumer and re-send it when they hear a consumer announcing older state (anti-entropy with suppression), so offline consumers converge on return.

Producers stay passive (HDMI encoders always transmit to their own fixed multicast group; switching is decoder-side join/leave — the commercial AVoIP pattern), which is what makes per-consumer independence sound: pairing consumer C to producer P touches only C.