Comments (8)
Hello @jeacott1,
This is a good question and this is something I have thought about intensively before building the relay-proxy.
There is nothing in Open Feature forcing me to have the relay proxy, the reason why I decided to use the API approach was to speed up the languages coverage support, if I did not have added the relay proxy I would have to rebuild the GO Feature Flag library from scratch for every language which makes it harder to maintain and evolve in the long run.
Today we have 5 different providers available for Open Feature (JS/TS, java, go, .Net, python), and all of them are using the relay proxy.
But the GO provider can also support using the go module directly and not calling any external API (see https://github.com/open-feature/go-sdk-contrib/tree/main/providers/go-feature-flag#using-the-go-module-standalone-version).
I will happy to support exactly what you say but I see some tradeoffs that we should take into consideration:
- Being sure that the hashing method of the flag put the same user in the same bucket in all languages.
- Being sure that we develop the new features for each language at the same time.
- Being sure that the rules are evaluated the same way in all languages.
I guess for the frontend SDK this can make sense (for now the JS/TS provider is mostly here for backend), but maybe it will make sense in the long run to thing about it.
Considering all of this, I am happy to have your feedback about the decision made in the past.
from go-feature-flag.
@thomaspoignant thanks for your response!
For me, I'm not using 'go' anywhere. My projects are generally a mix of spring boot/legacy j2ee/.net, and ts/js/react, and the 'Open Feature' thing is very appealing to me. I didn't realise the logic was also buried in the relay, I can certainly see that maintaining multiple Open Feature providers would be work, but I can also see that every flag will require an api call. hopefully these are cached clientside for a period. It's a tricky problem for a small open source project. transpiling core logic libs from some primary source to the target langs might be an option (LLVM, gopherjs etc), but its probably more pain than its worth.
from go-feature-flag.
Related Issues (20)
- (feature) Adding simpler format HOT 2
- (bug) Google cloud storage retriever only gets the file in the first attempt HOT 3
- upgrade nikunjy/rules module HOT 2
- (change) Update to nikunjy/rules v1.2.0 HOT 2
- (bug) Nil pointer dereference when calling a variation without Init HOT 4
- (doc) Add migration page in the doc
- (doc) Add relay-proxy documentation in the docs website
- (change) migrate doc to docusaurus
- (bug) Doc fix size of newsletter input for mobile
- (doc) Add google analytics to the documentation HOT 1
- (doc) Add GitHub Action to create new doc tag when a release happen
- (bug) <Fetching json flags as a yaml> HOT 1
- (bug) dummy test
- (bug) test
- (bug) test
- (change) Build editor into docusaurus HOT 1
- (change) Ensure that all reason are mapping the OpenFeature reason
- (doc) Add search in the docs
- (bug) Relay proxy returns 'Version' field as string while Open Feature provider expects int HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-feature-flag.