Feature Store · View 11 of 21 · Data
Decisions
- Every offline value carries both an event timestamp and an ingestion timestamp. Every online value carries one. That asymmetry is the point-in-time guarantee, expressed as a schema.
- Every value — offline and online — carries the definition version that produced it, which is what makes skew detectable and a definition/materialisation mismatch findable.
- consumer_pin holds criticality and absence policy per consumer, not per feature, because the right failure mode for a fraud model is the wrong one for a ranking model.
Assumptions
- Feature versions are immutable; a transformation, window or dtype change creates a new version and leaves pinned consumers on the old one.
- Lineage is a graph workload and lives in its own store, so it is not modelled here.
Risks
- An ingestion timestamp that a source cannot supply reliably makes a point-in-time join impossible for that feature. The platform refuses rather than approximates, which will be argued about.