Files
swarm-house/docs/adr/ADR-0003-sync-derived-state-only.md
T
eSlider 5f6fd8462c
CI & Release / Verify simulator (push) Skipped
CI & Release / Trivy scan (push) Skipped
CI & Release / Semantic Release (push) Skipped
CI & Release / Verify simulator (pull_request) Failing after 4s
CI & Release / Trivy scan (pull_request) Skipped
CI & Release / Semantic Release (pull_request) Skipped
docs: audit links, glossary T0-T4, readability pass
Extend glossary with storage floors, source of truth, and linkable anchors.
Fix broken links, pose frame drift, rsync/offload wording, and README tone.
Add docs/improvement audit records and live demo links in design journey.
2026-07-10 10:46:59 +01:00

34 lines
1.3 KiB
Markdown

# ADR-0003: Sync derived state only; raw telemetry stays local
## Status
Accepted (2026-07-08)
## Context
Each drone produces high-rate sensor telemetry and on-board video detections —
far more than the mesh can carry. But peers only need enough to coordinate
flight: where everyone is, where they are heading, what was detected. Pushing
raw feeds across the air would saturate the radio and drain batteries for data
nobody reads in flight.
## Decision
Only **derived state** crosses the air — position, attitude, detections — as
small pub/sub broadcasts (~5 Hz). **Raw telemetry stays on local NVMe** until
the drone lands, then travels to the warehouse during offload
([ADR-0002](ADR-0002-one-storage-format.md)). The design is **event-driven**:
new derived data triggers downstream action through hooks; nothing polls asking
"anything new yet?".
## Consequences
- Air bandwidth scales with the number of peers and the broadcast rate, not
with sensor resolution.
- The [source of truth](../00-glossary.md#source-of-truth) is the only place with the full picture; in-flight decisions use
the local window plus peer broadcasts.
- Broadcast staleness per peer becomes a first-class health signal
([`../07-observability.md`](../07-observability.md)).
- What syncs and what does not is specified in
[`../04-swarm-sync.md`](../04-swarm-sync.md).