Coder Social home page Coder Social logo

Comments (8)

thomaspoignant avatar thomaspoignant commented on June 3, 2024

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.

jeacott1 avatar jeacott1 commented on June 3, 2024

@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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.