Identity, ordering, and revisions
Exact means stable identity and revision, not permanent availability.
Guide context
A retained reference resolves the revision it names—not whichever value is current today.
Every record has a stable identity and numbered revisions. A correction adds a new revision instead of overwriting the old one. An exact lookup returns the named retained revision or an explicit non-found result, never whatever is newest.
On this page · 4 sections
One identity, retained revisions, three clocks
Effective time
When the source event happened.
Accepted time
When a revision became known.
Read boundary
The exact revision and pinned generation requested.
A correction is a new revision, not a new event#
Identity is tenant + subject + type + ID. An exact retry returns the original receipt. A changed payload at the same revision conflicts. A correction uses the next revision and cannot change ID, scope, or occurrence time.
Idempotency is bounded by retained evidence. Do not recycle IDs after expiry. Deduplicating an outcome record does not prevent an external operation from executing twice.
Three clocks, three meanings#
Occurrence time
Places the event in a UTC day. Daily membership sorts by occurrence time, then ASCII ID.
Acceptance sequence
Orders applied revisions inside one tenant/subject/type scope.
Publication time
Marks when a fixed view became available. It is not the event’s business time.
Pin the collection while browsing#
A daily generation names a fixed manifest of bounded reference pages. Reuse its generation with the next cursor so a late arrival does not change the collection mid-read. Daily generations and trajectory generations are different references, not interchangeable identifiers.
Read exact revisions without inference#
A daily read returns at most 32 references. byIds() restores requested order and reports missing, expired, or unresolved keys explicitly. A failed or unprocessed lookup is not replaced with the latest revision.
Source pointers and hashes do not certify an outside business claim. Availability alone proves neither consumption nor correct reasoning; retain the generation actually supplied to an agent to record that application input.