-
Notifications
You must be signed in to change notification settings - Fork 996
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
Phase out Provider interface #4057
Comments
@EXPEbdodla Making sure you guys are in the loop as well. Do you think provider removal will pose any problems for you? |
Thanks @tokoko for adding to this thread. Currently we are using our own provider for following use cases:
|
@EXPEbdodla thanks for a detailed reply.
Agreed, this should probably be the default behavior.
I think that was already made optional in #4189.
Go feature server was effectively (partially) removed upstream mostly because of similar reasons, go-python interop with arrow seems too much to nail down. If that's your experience as well, we should probably consider bringing it back with transformation server as a default odfv backend similar to java. (Although transformation server has it's own quirks that need to be worked on). Can you also take a look at #4266? Would be really useful to know more about your experience with go server/sdk. To sum up, I think all except the first use case doesn't really necessitate a pluggable provider... And the first one doesn't feel important enough to warrant keeping it around either. Does that sound fair? |
@tokoko One of the useful way (but its not supported currently). Validation of Feast object (Entity, Datasource, Feature View) during apply() phase. In our case, we want to ensure some certain tags, support certain datasources only. Not sure if there is a way to do that currently. |
It's currently not supported, but you should be able to do that with security rules in the future (#4198). It wouldn't be an explicit project-wide restriction, but you will be able to grant permissions based on object types, tags, source types, etc.. |
@EXPEbdodla we do this but in CI before we run apply. build the registry and run a registry linting step that inspects all the defined objects for naming conventions, tagging, etc. makes for a nice separation of concerns in the pipeline. |
The concept of providers has been in feast since the early days, but the latest versions of feast have barely any use for it. There are 4 providers in the project:
local
,aws
,gcp
andazure
(contrib), all of which extendpassthrough
provider. All of them except foraws
don't make any meaningful changes to the parent functionality.aws
provider adds an additional logic that manages the deployment of feature server to aws lambda.The primary reason why providers have become irrelevant is that most of the components that they provide are extensible, configurable and pluggable anyway. For example, there's no point specifying
gcp
as a provider when the user still has to separately configure all relevant components (online_store
,offline_store
) separately. I think it can in fact be more confusing to users because setting provider asgcp
and choosingaws
technologies as offline and online stores still function exactly the same as with anaws
provider.Another use case for providers was supposed to be that some choices for online/offline store selection would be made for the user by default, but this also doesn't make much sense as in virtually all scenarios (except sometimes maybe for local) the user still has to configure these individual components to provide additional information (e.g. aws region, names for the service instances and so on).
I think we should start phasing out all usage of providers and eventually remove them from the codebase and docs. The only functionality aws provider provides right now (aws lambda) can easily be made available without restricting it to a single provider.
The text was updated successfully, but these errors were encountered: