MATIH Platform is in active MVP development. Documentation reflects current implementation status.
13. ML Service & MLOps
Feature Versioning

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 -> archived

Querying 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_at

Source Files

FilePath
Feature Versioning Servicedata-plane/ml-service/src/features/feature_versioning_service.py
UnifiedFeatureStoredata-plane/ml-service/src/features/unified_feature_store.py