-
Notifications
You must be signed in to change notification settings - Fork 72
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
[FEATURE] Make offline file usage an own provider type #1504
Comments
How much effort do you think this will be? It sounds relatively useful but I'm not sure it's worth the effort. |
open-feature-forking/java-sdk-contrib#1 this pr shows the efforts for java, with backwards compatibility |
possible gherkin tests to ensure this behaviour, throughout all our providers. |
i created a fully fledged demo for java - with gherkin testbed tests, to show how this looks like for java. i do think, that this is a easy to do change, which allows us to treat those providers and logics seperately:
|
This seems like a pretty small change: |
I'm definitely in favor of this. Here is my simple reasoning:
|
so i can move forward with the migration? |
Yes, I'm okay with this change. Thanks for the proposal and Java example. |
Requirements
Currently, we have two modes: RPC and in-process, and in-process has two different sources: GRPC and file. Initializing in-process GRPC uses many settings, such as host, port, certPath, socket path, connection settings, etc. In contrast, the in-process file provider only needs a file and a polling interval. This confuses users, and the difference for those settings is not 100% clear. We could simplify the API surface and introduce a third provider type, "FILE," representing the offline path.
Proposal
A file-based resolution must be implicitly in-process (It doesn't connect to anything). It needs a minimum of settings, and we can improve our testing significantly. We also want to run all kinds of evaluations, events, and mismatch tests for the file version, making those implementations and implications more transparent.
Add another ProviderType called "FILE".
This provider only needs 4 properties:
new Config table
rpc
,in-process
lru
,disabled
in-processfilein-processfileensure backward compatibility
As some providers already implement offline file paths, we could implement logic that sets the provider type to
FILE
when the property for offline_source_file is set. This should be fairly easy to achieve, as we have good abstraction in most places.wdyt?
The text was updated successfully, but these errors were encountered: