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-0024: The advisory store is a third schema, not a second engine

Status: Accepted Date: 28 August 2026 Requirements: SRD FR-12, FR-13, FR-18, FR-63; C-06, C-07, C-19, C-20; the constitution's technology constraint Raised by: feature 020's specification, which chose "a store of its own" for structural provenance and deliberately did not choose an engine

Context

Feature 020 sends small forecast updates from shore during a voyage: a concise vector description of a dominant environmental feature, arriving mid-run over the message fabric and served read-only through the query layer. Planning it produced one decision before any code — that the advisory takes a new mutable path rather than relaxing the feature store's read-only-during-a-run rule (FR-13), so that what was aboard at departure and what was sent en route stay structurally distinct, and no consumer has to remember the difference.

That settles the separation. It does not settle where the separated thing lives, and the specification said so in as many words: the store was chosen "for structural provenance, not any particular engine".

Two documents then stood in the way of every answer. The constitution's technology constraint reads "Postgres + PostGIS as one instance carrying two schemas — observations and features", and SRD FR-12 said the same in requirement form. A third holding, written during a run, had no place in either sentence. The SRD's v0.4 scope amendment left the question open on purpose and delegated it here rather than settling it in passing; this record is that decision.

Decision

The advisory store is a third schema, advisories, in the same Postgres instance.

SRD FR-12 now names three schemas rather than two. The constitution's technology constraint is amended to match, and its version moves to 1.5.0.

The alternative — a deliberately lighter store outside the database, whether files beside the coverage store or a second engine — is rejected.

Consequences