-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feast Metadata #363
Comments
This is great, thank you. A few comments
|
|
I think overall it looks good. So fields would be mapped like Spec
Meta
The implication of this is that |
Separating system (meta)data from user specs makes sense to me, but I'm not sure about details of what's proposed if system-set versus user-set is the delineating factor. Do we consider Project to be metadata? It's part of schema and changing the project of existing features/sets is probably disallowed, so I can see it in that sense, but aren't the features and entities of a feature set then very similar? Except that more members maybe be added to them over time. Project isn't a property or child of a feature set—closer to other way around—but project is set by the user, no? And it feels odd to me that some schema parts of the canonical address of a feature are "metadata" (project) and others are not (feature and entity names). Also still thinking about the possibility of user metadata—I'm due to write up a feature request for this, but the rough idea I've mentioned in chat is for loosely-coupled extensibility of the system: possible use case examples are controlling replication selectively, tagging PII, etc. That needs a more fleshed-out spec to take into account fully here, but I think the two are orthogonal enough that this should not need to wait for it, with possibly one exception: naming. The example cases I've thought of so far for user metadata could be stored in the spec registry only, not a serving store. So in that sense I think calling it "metadata" is apt. There could be message FeatureSet {
// User-specified specifications of this feature set.
FeatureSetSpec spec {
repeated EntitySpec entities;
repeated FeatureSpec features;
// etc.
// User-specified custom metadata for this feature set.
repeated SpecMeta meta;
}
// System-populated metadata for this feature set.
FeatureSetMeta meta;
} Thoughts? Maybe that isn't so bad. Or maybe there are better names for either one of them, but I believe I need to understand my questions at the start of this post better to suggest any. Could we update the issue title to specify something like "system metadata", to distinguish for now? |
Perhaps the wording is a bit off in terms of the delineation. The proposal takes inspiration from Kubernetes manifests, where things like
Project is part of the registration of a feature set and will become fixed metadata, just like the name. It has no bearing on functional aspects. Features and entities would. They are different in that copying and registering the spec into a different project with a different name shouldnt affect how it functions. User coupled metadata is similar to how either annotations or labels work in Kube, so that would be metadata I believe. |
So to my final point: I don't see a need to differentiate |
Update on this We have decided to leave the following keys within the spec for the time being
At least until we are sure that moving them out of the FeatureSetSpec message is necessary. Currently FeatureSetMeta will only contain the created timestamp and status. |
Closing this for now. |
Currently there is no distinction between user set values and system information about a feature set.
Proposing to add a larger FeatureSet object that holds both the user-specified
spec
and system-populatedmetadata
of the feature set.The text was updated successfully, but these errors were encountered: