feast-dev / feast-dev/feast

Improved feature view and model versioning

Open
#2,728 2 comments 7 reactions 1 assignee Claimed by @franciscojavierarceo View on GitHub
Community Contribution Needed keep-open kind/feature kind/project priority/p1
Dominant language
Python
Stars
7.3k
Forks
1.4k
Avg merge
1d 21h
Merged PRs (30d)
15

Description

# Problem
When using Feast, it can be hard to version features with respect to models in production.
- Users modifying a re-used feature view (e.g. in response to upstream schema change) can accidentally impact other models in production
- Hard to tie versions of features together or versions of models (~`FeatureService`)

As Feast adds batch transformations or #2597, transformation logic will also need to be versioned. This is already an issue today with on demand feature views too.

# Potential solution
One way to address this is to double down on:
### 1. Feature services as the central way to retrieve features + track models.
- Registering a feature service signifies dependent features / feature views are in "production"
- Allow `feature_service.get_historical_features` or `feature_service.get_online_features`
### 2. Improvements to `feast plan` and `feast apply`
- `feast plan` that prevents deletion or editing of feature views that feature services in prod depend on (Modifying https://github.com/feast-dev/feast/blob/master/sdk/python/feast/feature_store.py#L594)
- If you remove a feature service, then the underlying feature views could be removed if no other feature service depend on it
- `feast apply` that fails in above case by default (overridable though)
- e.g. modifying the logic at https://github.com/feast-dev/feast/blob/master/sdk/python/feast/feature_store.py#L676
### 3. Feature view versioning
- Not super sure here on the best practice, but a way to say that feature view B is a new version of feature view A.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.