drogna

A demonstration harness. Every number in it is invented.

V1 record — describes retired software; superseded for V2 by srd.md, constitution 2.0.0 and ADR-0027.

ADR-0012: Sensors and the ingest client may read the clock, and nothing else on the control branch

Status: Accepted Date: 26 August 2026 Requirements: SRD FR-14, FR-09; ADR-0006, ADR-0009; Constitution I Raised by: feature 007, which could not satisfy both requirements as written

Context

FR-14 confines sensors to the observation branch: observation traffic and internal control events use separate topic namespaces, "with access control lists confining sensors to the observation branch". Read literally, a sensor gets no subscription to ctl/ at all.

ADR-0009 then decided that simulation time reaches every component by subscription to ctl/clock, the browser included, and that the clock's small HTTP interface exists for setting the rate and for startup catch-up only — a component polling it for time is doing the wrong thing.

The two cannot both hold literally. A component that cannot receive a clock sample has no simulation time, and a component with no simulation time can only pace itself on the host clock, which Constitution I forbids outright. The conflict is not between a requirement and a convenience; it is between two requirements, and one of them has to give.

Decision

The sensor and ingest roles may subscribe to ctl/clock and to nothing else on the control branch, and may publish nothing on it. Every other control topic is refused in both directions.

Consequences