Feature Versioning
Feature versioning ensures that changes to feature definitions, transformations, and schemas are tracked, validated, and backward-compatible across the platform.
Version Tracking
Each RegisteredFeatureView carries a semantic version:
@dataclass
class RegisteredFeatureView:
id: str
tenant_id: str
declaration: FeatureDeclaration
lifecycle: FeatureLifecycle
version: str = "1.0.0"
created_at: datetime = field(default_factory=datetime.utcnow)
updated_at: datetime = field(default_factory=datetime.utcnow)Lifecycle Transitions
Version changes follow the lifecycle state machine. A feature view must pass validation and approval before it can serve traffic:
draft -> validating -> pending_approval -> approved -> materializing -> active
|
suspended <-+-> deprecated -> archivedQuerying by State
# List all active feature views
active_views = await store.list_feature_views(
tenant_id="acme-corp",
state=FeatureLifecycleState.ACTIVE,
)
# Get lifecycle details
lifecycle = await store.get_lifecycle(view_id="...")
# lifecycle.current_state, lifecycle.history, lifecycle.activated_atSource Files
| File | Path |
|---|---|
| Feature Versioning Service | data-plane/ml-service/src/features/feature_versioning_service.py |
| UnifiedFeatureStore | data-plane/ml-service/src/features/unified_feature_store.py |