Storage architecture–8.4

Registries

The GII-US registry architecture: append-only raw evidence, versioned Decision Event / Outcome / Analysis / Score / Publication registries, and identifier reconciliation that prevents accidental duplicates.

1Decisions held
3Identifiers
consistentIntegrity
matchedReconciliationA second sighting of the same identifier resolves to the existing entity.

Every published GII value must decompose back to its evidence, which requires a disciplined set of stores. Raw evidence is append-only; corrections happen in the derived layers and retain a link to the originally ingested object. Personally identifiable or confidential data never enters this pipeline.

Implemented in @gii/registry · the facts below are computed live by the library from the fictional snapshot.

The logical stores#

StoreKindHolds
Raw evidence storeappend-onlyImmutable retrieved files and API payloads, content-addressed by checksum.
Normalized source layerderivedParsed, typed, quality-checked records, each linked back to its raw evidence.
Decision Event RegistryversionedStable government-action objects — identity, authority, status, dates.
Policy Lineage GraphgraphTyped relationships and temporal status (see /lineage).
Outcome RegistryversionedOutcome definitions, orientation rules, sources, denominators, and revisions.
Analysis RegistryversionedDesigns, estimands, models, code, diagnostics, and results.
Score RegistryversionedVersioned scorecards and their decomposition.
Publication RegistryversionedReleases, citations, corrections, and deprecations.

Append-only and versioned#

Raw payloads are content-addressed by checksum: re-ingesting identical content is idempotent, and a checksum collision with different content is refused rather than silently overwritten. Derived records are versioned monotonically from 1 — a revision or a correction is a new version that links back to the one it replaces, so prior vintages remain retrievable and visibly superseded.

Identifier reconciliation#

Cross-government identifiers are inconsistent, so GII preserves source identifiers rather than overwriting them and maps each to a GII entity through a crosswalk carrying the source, validity period, match method, and confidence. Reconciling an incoming record’s identifiers against the crosswalk is what stops an agency rename, reissued rule, or corrected opinion from creating an accidental duplicate.

Worked reconciliation. The decision GII-US-2027-EXE-AGY-RULE-0042 preserves federal-register-doc=2027-0042 rin=1234-AB56 public-law=119-000 . A reissued rule carrying the same RIN reconciles to matched → GII-US-2027-EXE-AGY-RULE-0042 — one entity, no duplicate. Registry integrity for this snapshot: consistent.

This storage layer backs the API, the lineage graph, and the production pipeline’s reproducible release packages.