Is your feature request related to a problem? Please describe.
The goal of this feature is to simplify feast integration for model serving platforms. Feast feature servers have custom http/grpc interfaces which can be tricky to integrate with. For example, Kserve's feast integration guide involves writing glue code to create a transformer and publishing a custom docker image for each model integration.
Describe the solution you'd like
This feature request proposes adding OIP-compliant endpoints to feast feature servers. While open inference protocol is modeled for model execution and it's lingo also reflects that (/infer endpoint for example), I think it still might be worth it to reuse the same protocol to simplify integration, especially for serving requests involving FeatureServices that are very similar to models from a user perspective:
- FeatureService objects in feast have a unique name.
- FeatureServices don't yet have versioning associated with them, but it's a logical next step for us anyway.
- FeatureServices have well defined input and output schemas, feast's data types and OIP tensor types are similar enough to be easily interoperable.
This request proposes adding new OIP-compliant endpoints to the feature server leaving existing ones intact. This is important because existence of a /get-online-features endpoint will allow us not to support all feast features under OIP. For example, feature retrieval passing a list of features instead of a FeatureService should be only supported with /get-online-features as it doesn't fit OIP protocol nicely. Passing back metadata about row staleness along with data payload can also be something that's /get-online-features-only unless we find a good way to model it with OIP.
Finally, to disambiguate this proposal from #4288 and the associated discussion, this feature request doesn't call for introducing model serving into feast, everything that will happen on a feature server will be very much still feature retrieval only disguised as OIP to simplify integration.
Is your feature request related to a problem? Please describe.
The goal of this feature is to simplify feast integration for model serving platforms. Feast feature servers have custom http/grpc interfaces which can be tricky to integrate with. For example, Kserve's feast integration guide involves writing glue code to create a transformer and publishing a custom docker image for each model integration.
Describe the solution you'd like
This feature request proposes adding OIP-compliant endpoints to feast feature servers. While open inference protocol is modeled for model execution and it's lingo also reflects that (
/inferendpoint for example), I think it still might be worth it to reuse the same protocol to simplify integration, especially for serving requests involving FeatureServices that are very similar to models from a user perspective:This request proposes adding new OIP-compliant endpoints to the feature server leaving existing ones intact. This is important because existence of a
/get-online-featuresendpoint will allow us not to support all feast features under OIP. For example, feature retrieval passing a list of features instead of aFeatureServiceshould be only supported with/get-online-featuresas it doesn't fit OIP protocol nicely. Passing back metadata about row staleness along with data payload can also be something that's/get-online-features-only unless we find a good way to model it with OIP.Finally, to disambiguate this proposal from #4288 and the associated discussion, this feature request doesn't call for introducing model serving into feast, everything that will happen on a feature server will be very much still feature retrieval only disguised as OIP to simplify integration.