Institutional · DynaStore programme since 2023; identity design published in 2026

GeoID: feature identity independent of storage

Identity architecture within FAO geospatial platform work

GeoID is the feature-identity design within DynaStore’s geospatial work. It separates the identity of a feature from the catalog, collection and backend identifiers used to locate or serve it.

Problem: a location is a fragile identity

Catalog names, storage names and URLs can change as data moves or systems evolve. If these locations are treated as feature identity, a move can look like a new entity to clients and downstream representations.

The design problem is keeping domain identity stable while allowing catalogs, collections and storage drivers to retain their own responsibilities.

Architecture: resolve external references to domain identity

The inspected DynaStore source distinguishes canonical feature IDs from external catalog/collection identifiers and backend document/index names. Write boundaries resolve external references to immutable internal IDs before persistence.

New writable feature identities use UUIDv7. File-backed features derive deterministic UUIDv5 identities scoped by catalog, collection and source feature ID. These are different identity policies for different source capabilities.

Domain identity across source and storage boundaries

External catalog/collection references and source feature IDs enter a resolution boundary. Canonical feature identity is kept separate from PostgreSQL keys and search document/index names. Writable and file-backed identity policies are deliberately distinguished.

Open full-size SVG
GeoID · identity survives a storage boundaryCatalog and collection references resolve to internal identity. Writable features use UUIDv7 identities and file-backed features use scoped deterministic UUIDv5 identities. Backend IDs remain a separate representation. GeoID · identity survives a storage boundary Canonical feature identity · different policies for writable and file-backed data SOURCE REFERENCES Names and source keys are not universal feature identity Writable feature input Catalog / collection reference File-backed source feature Scoped source feature identifier DOMAIN IDENTITY BOUNDARY Resolve references before persistence New writable identity UUIDv7 Deterministic file identity UUIDv5: catalog + collection + source ID resolve / assign derive in scope PHYSICAL REPRESENTATIONS Canonical IDs are distinct from backend names PostgreSQL feature storage Canonical feature ID Backend representations Physical keys / search document IDs persist identity identity mapping UUIDv7 does not prove global transaction order. UUIDv5 stability depends on the defined source scope. Identity resolution is distinct from authorization and from the availability of a public resolver. SOURCE REFERENCES Names and source keys are not universal feature identity DOMAIN IDENTITY BOUNDARY Resolve references before persistence PHYSICAL REPRESENTATIONS Canonical IDs are distinct from backend names Request / integration Message / asynchronous work Persistence / data access

Decisions: stable identity is not global ordering or permission

The writable identifier helper describes process-local monotonic behavior and random bits. A UUIDv7 identity is not proof of global transaction ordering, cross-process sequencing or authorization.

Deterministic file identity needs a clear source scope: catalog, collection and source feature ID. A retrospective alternative is deriving identity only from a raw source ID; it is simpler but loses that scoping and can collide across independently named sources.

Outcomes: an identity boundary visible in source

The inspected repository contains identity helpers and item service boundaries supporting this distinction. A published technical article explains the GeoID design.

This case describes source mechanisms and architectural intent. It does not claim all public references are resolvable forever, every data migration is transparent, or identity generation itself enforces access control.

Learning: keep identity, resolution and access distinct

A persistent identifier is useful when the surrounding system can explain resolution, changes and access. Its format alone cannot guarantee those policies.

For further validation I would test source moves, catalog renaming, external-ID reuse and deterministic identity across file reloads, then inspect each authorization boundary independently.

Questions & discussion

Why two UUID strategies?

Writable features need new domain identities. File-backed features can derive identities from a stable scoped source reference. Their guarantees are different and should be tested separately.

Read the relevant section
Does UUIDv7 establish global write order?

No. The inspected helper’s local monotonic behavior is narrower than a distributed transaction ordering guarantee.

Read the relevant section
Does knowing a GeoID grant access?

No. Identification and authorization are separate responsibilities. Every route that resolves or serves an entity needs its own access enforcement.

Read the relevant section

Sources & scope

Related documents

Presentation · 2026

Why GeoID and DynaStore exist

Complete nine-slide revised July 2026 presentation: stable UUIDv7 feature identity, operation routing, storage capabilities and deployment choices. Demonstration descriptions make no benchmark latency claim.

Carlo Cancellieri. Revised source edition, July 2026. Public repository cited in the slides: github.com/un-fao/GeoID.

Read the related case study