Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 29 additions & 2 deletions docs/rfcs/0001-template-miner.md
Original file line number Diff line number Diff line change
Expand Up @@ -1845,7 +1845,10 @@ which id any event named as its anchor. A class that drops to a
single member is no longer an alias set (that lone id resolves only
to itself, RFC0001.16). The folded result is persisted as a **per-tenant
artifact** (one map per tenant, not per partition) that the querier
reads at compile time. Three venues were considered:
reads at compile time — note: that persisted artifact is the *deferred
cache* of the 2026-06-12 amendment below; in v1 the querier folds the
map directly from the audit stream and no artifact exists yet. Three
venues were considered:

- **Per-tenant projection from the audit/alias event log (chosen).**
Aliases are a tenant-scoped projection rebuilt from the durable
Expand Down Expand Up @@ -1894,6 +1897,24 @@ is always a *previously asserted* membership, never a phantom one.
The bound on the window (snapshot cadence) is a storage/serving-layer
knob, deferred to the RFC 0005 storage decision (see §9).

> **Amendment 2026-06-12 — the storage decision is made (v1), by
> the RFC 0005 line.** `alias_asserted` / `alias_retracted` persist
> as `event_kind` 4 / 5 on the RFC 0005 §3.7 audit stream, and in
> v1 the querier **derives** the per-tenant alias map at
> query-compile time by scanning the tenant's audit stream for
> those kinds and folding them through this section's projection
> semantics (RFC 0005 §3.7.1) — there is no persisted map artifact
> yet, so "the projection is rebuilt and republished" above reads,
> in v1, "the audit events are durably written and flushed"; the
> staleness bound is audit-flush visibility rather than a
Comment thread
jensholdgaard marked this conversation as resolved.
> snapshot/rebuild cadence, with the same bounded
> under-/over-inclusion directions. The cached per-tenant artifact
> (file/format/cadence) stays deferred behind the RFC 0009 §3.4
> manifest fork; because the event log remains the source of truth,
> adding the cache later changes no query-visible semantics — the
> same v1-full-replay-now / accelerate-later shape as §6.9's
> snapshot.

*Reader / query contract.* RFC 0002's `template_id.resolves_to(X)`
(RFC0002.9, §5.4) loads the requesting tenant's alias map at compile
time and expands `X` to its alias-set membership: `template_id IN
Expand Down Expand Up @@ -2556,7 +2577,13 @@ and the remaining future work is the two items below them.
**physical alias-map file/format and snapshot cadence** are a
storage decision owned by the RFC 0005 line, not RFC 0001 —
RFC 0001 owns the model, the write path, and the criteria
(sibling to the issue #147 split).
(sibling to the issue #147 split). *Update 2026-06-12:* the
RFC 0005 line has made the v1 half of that decision — alias
events persist as kinds 4–5 on the RFC 0005 §3.7 audit
stream, and the querier derives the map by folding that
stream at compile time (RFC 0005 §3.7.1; §6.7 amendment of
the same date). The cached per-tenant artifact remains
deferred behind the RFC 0009 §3.4 manifest fork.

**Cross-RFC contracts pending.**

Expand Down
Loading
Loading