# ADR 003: Three-Agent Temporary-Leader Protocol

- HTML version: https://robbiepalmer.me/projects/autonomic-satellite-swarm/adrs/003-temporary-leader-mission-assignment
- Project: Autonomic Satellite Swarm (https://robbiepalmer.me/projects/autonomic-satellite-swarm.md)
- Status: Accepted
- Date: 2016-07-01

# Context

The swarm must assign a geographic objective without a permanent controller. Each agent has a
different position, direction of travel, and energy reserve. A central ground process would bypass
the self-management behavior that the prototype is meant to study.

A permanent leader would be a single point of failure in a hostile, intermittently connected
environment. If it malfunctioned or moved out of line of sight, healthy followers could no longer
receive assignments. Fully peer-to-peer agreement would remove that role, but it would require a
consensus protocol beyond the experiment's goal. The swarm still needs one coordinator while a
mission is being assigned; it should hold that authority only for the duration of the negotiation.

# Decision

Make the agent that introduces a mission its temporary leader. It broadcasts the target coordinate,
collects candidacy scores for a fixed interval, acknowledges each response, selects the highest
score, and broadcasts the assignment.

Candidates rebroadcast the mission and forward scores so a message can reach an agent outside the
initiator's direct infrared path. The leadership role ends after assignment. Fix the demonstration
at three agents, enough to exercise competing candidates and one relaying path while still fitting
the available hardware and bench space.

# Consequences

Every board runs the same program, and any idle agent can introduce work. The handshake exposes
missing acknowledgements and permits a candidate to reason about its own communication health.

The protocol assumes one active initiator, cooperative identities, a three-agent limit, and a
communication path between the agents. It does not resolve simultaneous leaders or network
partitions (communication loss that splits the swarm into isolated groups; partition tolerance is
the "P" in the [CAP theorem](https://doi.org/10.1145/564585.564601)). It also does not handle forged
messages or [Byzantine behavior](https://doi.org/10.1145/357172.357176) (a faulty or malicious agent
sending conflicting or misleading messages).

---

Markdown index of this site: https://robbiepalmer.me/llms.txt
