Prompt & Configuration Registry · View 15 of 21 · Runtime
Decisions
- Variant membership is hash(unit, salt) mod 100 against the declared weights. No store, no lookup, no assignment service, and therefore no assignment-service outage (ADR-09).
- The same function is computable offline, so an analyst reconstructing an experiment from exposure data gets the same answer the resolver did.
- Weights can be changed live; the salt cannot. Changing weights moves the boundary of the bucket range, which keeps already-assigned units where they are.
Assumptions
- ≤ 0.1% of units may change variant over an experiment's life (stated assumption) — the budget for fleet changes and rounding, not for rebucketing.
- 500 million exposure events/day at peak (stated assumption), which is why the exposure path is a droppable telemetry pipeline rather than a transactional write.
Open question, drawn
- The Exclusion lane is thin because ownership of mutual exclusion is unresolved (ask.md Question 4). If prompt experiments must interact with pricing and UI experiments, this lane belongs to the organisation's experimentation platform and not to the registry.
- The readout declares its loss rate rather than hiding it. An experiment that lost 4% of its exposures is a different claim from one that lost none.