Kernel/record-ids

Record IDs

Every record in Dominir has a unique, permanent ID. This ID is assigned by the Kernel at the moment a record is first created and never changes, even as the record is updated. Understanding the ID format is useful for reading audit logs, tracing agent writes, and working with the SDK.

The format

A Dominir record ID looks like this:

Pe-AI-FQiher

It is always 12 characters in three segments separated by hyphens.

The first segment — record type

The first two characters identify the type of record. This prefix comes from the world model's definition of the record type. For example:

  • Pe — Person
  • Ca — Case
  • Ta — Task
  • Do — Document

The prefix is set per type in the world model. When you see an ID, you can identify the record type without looking it up.

The second segment — write source

The middle two characters identify where the record came from. This is the provenance prefix, embedded permanently in the ID at write time. It cannot be changed after the fact. Examples:

CodeSource
00Default (manual entry, API, or unspecified)
NBNotebook (written from a code cell)
AIAgent
APBackend API
MGData migration

This matters in practice. When you audit a record and want to know whether it was written by a human, an agent, or an import script, the answer is in the ID itself — you do not need to consult a separate log.

The third segment — unique suffix

The final six characters are a unique suffix derived from a combination of timestamp and entropy. No two records in the system will ever share a suffix, even if they are the same type and were written at the same millisecond.

IDs are permanent

Once a record is assigned an ID, that ID is stable for the lifetime of the record. Updating a record does not change its ID. Archiving a record does not change or reuse its ID. If a record with a given ID has been archived, no new record will ever receive that ID.

What happens if you supply your own ID

You can specify an ID when writing a record (for example, during a data migration where you want to preserve IDs from a source system). The Kernel validates that the supplied ID matches the correct format for the record type. If it does not — wrong prefix, wrong length, invalid characters — the write is rejected before any data hits the ledger. Nothing is partially written.

Reading provenance at a glance

The ID is intentionally designed so that a person reviewing a log or a graph can read provenance without opening the record:

Ca-AI-x9Kp2L ← a Case record written by an agent Pe-00-r4mNqW ← a Person record written manually Do-MG-7vTzE1 ← a Document record written during a migration

This is useful in audits, incident reviews, and anywhere you need to quickly assess how data entered the system.

PreviousStores & WorkspacesNextHuman Oversight