Regulated Health TechnologyField engagement

If a derived layer cannot be rebuilt from its source, it is a source, and nobody documented it as one.

Solution architect.
The approach, in four words
the gate is a releaserebuildable or it is a sourcestore the output and the versionverify twice
01Append-only sourcelayer A
›
02Governed derivationlayer B
›
03Current statelayer C, with history
›
04Safety gateits own release
›
05Verified twicebuilt and effective
if layer B cannot be rebuilt from layer A, it is a source, and no governing document describes it as one
What was at stake

The starting point was a governance-grade specification: hundreds of requirement identifiers, recorded product decisions, and a large suite of blocking acceptance tests, all under version and hash control. The job was to turn it into an architecture somebody could build. That meant a scoped first release, a work breakdown traceable to function identifiers, and a procurement document another firm could bid from without having to read the governing documents themselves.

How this works

A record can be trusted when everything in it can be traced back to what was written first.

An append-only record is one where entries are only ever added. Nothing is edited and nothing is deleted. A correction is a new entry that refers to the old one and says what changed and why. This sounds wasteful, and it is the reason the design is used wherever history matters: the full sequence of what was known, and when, is preserved by construction, because there is no operation that could destroy it. Accounting ledgers, version control and audit trails all work this way.

Reading an append-only record directly is slow and awkward, so systems build derived layers on top of it: summaries, indexes, structured extracts, and a current state that shows how things stand now. A derived layer is defined by a rule that turns the source into the layer. The test of whether it really is derived is simple. Delete it, run the rule over the source, and see whether the same layer comes back. If it does, the layer is a convenience and can be trusted as far as the rule can. If it does not, the layer contains information that exists nowhere else, which makes it a source in its own right, usually one with no retention policy, no audit trail and no mention in the governing documents. Layers built by language models fail this test by nature, because running the same model on the same input can give a different result, so their outputs have to be stored as records along with the model version.

Regulated health software adds a second discipline: risk control verification. A risk control is a measure that reduces the likelihood or severity of a harm, such as a check that blocks an unsafe action or a warning shown at the right moment. Verifying it asks two separate questions. Was the control implemented as specified, which a test against the specification can answer. And does it actually reduce the risk it was designed for, which needs evidence about how it performs in use, for instance whether the warning is noticed and acted on. A control can pass the first and fail the second. Every requirement, control and test is tied together by identifiers so a reviewer can trace any of them to the others, and any change to validated behaviour, including a change nobody on the team initiated, goes through documented change control.

Current state with historyrevisable, and every revision is kept
Governed derived structureproduced from the source by an explicit rule
Stored model outputs and versionsrecorded once, never recomputed
Append-only sourceonly ever added to, so history is complete
The rule between the layers: rebuildable from below, or governed as a source.
FigureThe three-layer record, with model outputs held as part of the source. Everything above the bottom layer must be regenerable from what is beneath it. A model's output cannot be regenerated, so it is stored with its version and governed as source.
The constraint

Three things in the specification shaped the architecture more than any feature did. The blocking tests needed a release of their own. The global safety gate had to exist as a component before the first release was scoped, because everything else is scoped against it. And the record had to be rebuildable: an append-only source, a governed derived structure, and a current state with history, where the derived layer can always be regenerated from the source. The moment a derived layer cannot be regenerated, it has quietly become a source that no governing document describes.

Where it usually breaks

Governed systems usually fail at the seams with things nobody governs.

A specification under version and hash control is a strong defence against undocumented change inside the specification. The failures that get through tend to sit at its edges: a derived table that someone started editing by hand, a model behaving differently after a vendor upgrade, an inference request routed somewhere it was never meant to go. None of these changes a governed document, so none of them triggers the controls built around those documents.

The other pattern is verification done halfway. A team writes a test confirming that a risk control is present and behaves as specified, marks it verified, and moves on. Whether the control achieves its purpose in use is a second question with its own evidence, and plans that conflate the two tend to discover the gap at an audit.

01

The derived table that became a source

A derived layer gets hand-corrected or enriched until it can no longer be regenerated. It is now a source that no governing document describes.

02

The replay that gives a different answer

A model-built layer is regenerated by running the model again, and the result differs from what was originally recorded and acted on.

03

The upgrade on someone else's timetable

A hosted model is retired or automatically upgraded, and validated behaviour changes without any change request being raised.

04

The inference that left the boundary

Cross-region routing sends a request to be processed outside the intended residency boundary, and the design assumed it could not.

05

The control verified once

A risk control is tested for implementation only. It exists and works as written, and nobody has shown it reduces the risk.

The gate
Delete this layer and run its rule over the source. Does the same layer come back?
It is genuinely derived
trusted as far as its rule is
It is an undocumented source
govern it, or store what cannot be regenerated
A model-built layer fails this test by nature, which is why its outputs are stored.
FigureThe test every derived layer in the architecture is put to. A layer that passes is a convenience. A layer that fails is holding information found nowhere else, and it must either be fixed or be governed as a source.
The fork

The reflex, and the fix.

Road not taken

Scope the first release by feature value

Pull

That is how release planning normally works, and it produces an increment people can see and try.

Why not

The safety gate is global. Scoped around, it gets renegotiated in every release that follows, and the blocking tests have no release they belong to.

Road taken

Give the safety gate its own release

Accepted

A first release that delivers infrastructure and few visible features, and a rebuildability rule applied to every derived layer.

Bought

A gate that every later release is scoped against, and a record whose derived layers can be regenerated and checked against their source.

Decision

Build what everything else depends on first, even though it is the hardest thing to demonstrate.

How it was built
01Append-only source
›
02Governed derivation
›
03Current state
›
04Safety gate
›
05Verified twice
01

Three layers and one rule between them

An append-only source, a derived structure governed by an explicit rule, and a revisable current state that keeps its history. The rule is that the derived layer must be rebuildable from the source. If it is not, it is a source, and it has to be governed as one.

02

Model outputs are stored, never replayed

A layer built by a model cannot be regenerated by running the model again, because the same inputs do not reliably produce the same outputs, even at the lowest temperature setting. The output and the version of the model that produced it are therefore kept as part of the record.

03

Model retirement goes through change control

Hosted models are retired on published schedules, and some deployment types upgrade automatically. For software whose behaviour has been validated, an upgrade arriving on a vendor's timetable is a regulatory event, so the architecture pins versions and treats any change of model as a controlled change.

04

Residency is established before it is relied on

Where inference physically runs is not always selectable, and cross-region routing can place it outside an intended boundary. That has to be established for every inference path before a design depends on it, and re-verified whenever the vendor's terms change.

05

Every risk control verified twice

The governing standard requires each risk control to be verified for implementation and for effectiveness. Those are different tests, and a plan that writes only one of them has done half the work.

Inside the key decisions

What each choice cost, and what it bought.

AGiving the gate its own release

A first release that delivers a safety gate and the infrastructure under it is hard to show to stakeholders, because there is little to click on. That was the cost, and it was paid in patience and explanation. What it bought was a gate every later release is scoped against, and a home for the blocking tests. Scoping the first release by feature value would have produced something more visible and left the gate to be renegotiated in every release after it.

BApplying the rebuildability rule everywhere

Checking every derived layer for a rebuild path takes time, and some layers turn out to need reclassifying as sources with their own governance. That is extra design work and extra documentation. In return, no layer in the system can silently become a source, so the governing documents describe everything that actually holds information.

CStoring model outputs as part of the record

Recomputing a model-built layer on demand saves storage and keeps the record small. It also produces a different answer some of the time, and in a regulated record a value that changes on recomputation cannot be audited. Storing each output with the model version that produced it costs storage and adds the outputs to what must be retained and governed. It makes the layer reproducible by lookup, which is the only kind of reproducibility a model offers.

DWriting a procurement document that stands alone

The governing documents are long and precise, and asking a bidding firm to read them all would narrow the field and invite inconsistent readings. Translating them into a self-contained procurement document took real effort and introduced a risk of drift from the source. Tying every work item back to its function identifier controls that risk, and the result is a document that lets every bidder price the same, traceable understanding of the work.

First release scoped by features
Visible increment early
easy to demonstrate
Gate assembled around it
renegotiated in every later release
Blocking tests homeless
no release they belong to
Safety gate as its own release
Little to demonstrate
infrastructure, few features
Gate built as a component
every later release scoped against it
Blocking tests have a home
they ship with the gate
The gate is global, so it goes first
The release that demonstrates least is the one every other release depends on.
FigureTwo ways to scope the first release of a system with a global safety gate. Feature-first produces a better demonstration. Gate-first produces a foundation the later releases can be scoped against, and gives the blocking tests somewhere to live.
How it was measured

A single headline number hides where a system fails. This work was scored on the dimensions that actually decide whether it holds in production, measured on real, held-out cases rather than the demo path.

Rebuildability of each derived layerVersion pinning across model changesResidency of every inference pathCoverage of implementation and effectiveness verification
Rebuildability of each derived layera stated rebuild path, or governed as source
Version pinning across model changesno behaviour change without change control
Residency of every inference pathestablished, not assumed
Verification of implementationthe control exists and works as specified
Verification of effectivenessthe control actually reduces the risk
Implementation and effectiveness are listed separately because they are separate tests.
FigureWhat the architecture is assessed on. No client outcome figures are published for this engagement. Each dimension is a property that can be checked directly, and each depends on facts that must be re-verified when the build begins.
figures

Third-party platform and regulatory facts are cited with their source and date. No client outcomes are published.

What it produces
Without this discipline

A first release scoped by features, a safety gate renegotiated every time, and derived tables built by a model that nobody can regenerate once the model is retired.

This system

A safety gate delivered as its own release, a three-layer record with an explicit rebuildability rule, model outputs and versions stored as part of the record, the residency of every inference path established, and risk controls verified for implementation and for effectiveness separately.

the gate is a releaserebuildable or it is a sourcestore the output and the versionverify twice
The operating envelope

What it owns, and what it hands to a person.

Handled with confidence
Derived layers with a stated rebuild path
Version-pinned model usage
Traceability from work items to function identifiers
Flagged for review
An inference path whose residency cannot be established
A derived layer that cannot be regenerated
Out of scope by design
Regulatory approval itself
Clinical validity of the underlying rules
The honest limit

Vendor retirement schedules, residency options and the regulatory position all move, and each was established at a point in time with its source recorded. The architecture depends on them holding, so a build that starts later has to re-verify each one before relying on it. Regulatory approval itself, and the clinical validity of the rules the system enforces, are outside this work.

What it generalizes to

Every derived data layer should be rebuildable from its source, and the ones built by a model usually are not. Store what the model produced and which version produced it, and the layer becomes a record that can be audited. Leave it as a cache and it becomes an undocumented source the first time the model changes.

What to take from this

An append-only source keeps history complete by construction, because corrections are added as new entries and nothing is ever overwritten.

Test every derived layer by asking whether it could be deleted and regenerated from its source. If it cannot, it is a source and needs governing as one.

Model outputs cannot be reproduced by running the model again. Store each output and the model version that produced it as part of the record.

In validated software, a vendor retiring or automatically upgrading a model is a change-control event. Pin versions and plan for retirement before it is announced.

A risk control needs two verifications: that it was implemented as specified, and that it actually reduces the risk it exists for.

How we engage

You have a system like this one.
Tell us where it stands.

Whether it is failing, not yet built, or about to meet a scale it has never seen, we can tell you what we see.

Start a conversation
mostafa@opulion.dev · Response within 24 hours · By inquiry