Data model

A Register is a dataset for a single kind of thing. It has the ability to provide previous versions for the data held in it.

The dataset can be mapped to any of the serialisation formats defined in this specification and it can be published over HTTP as a REST API.

The backbone data structure is the log of changes. It is a sequence of entries identified by their numerical order, the entry number.

Each entry defines a change for an element in the dataset by recording the time the change was appended to the log, the numerical order in the log, the key to identify the element the change is for and the reference to the data for that element.

A picture of a log with A, B a Z entries

A snapshot of the state of the Register can be collected from the log. When the snapshot is the latest one, the elements are called records.

A picture of transforming a log into a snapshot

A Register uses a sidecar data structure derived from the log that allows anyone to efficiently audit the integrity of the data held in it. This data structure is a Merkle tree as described by the Certificate Transparency RFC6962. Check the Audit section for details.

In summary, the log and all its parts form an immutable data structure that allow expressing a sequence of changes on the dataset of elements, the Register.

The anatomy of an element

© Crown copyright released under the Open Government Licence.