Skip to content
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

feat(go-feature-flag)!: GO Feature Flag provider rebuild #547

Merged
merged 17 commits into from
Aug 14, 2024

Conversation

thomaspoignant
Copy link
Member

@thomaspoignant thomaspoignant commented Jul 30, 2024

This PR

In this PR the GO Feature Flag provider has been completely rebuilt on top of the OFREP provider.

This implementation adds a bunch of GO Feature Flag features on top of OFREP:

  • ✅ Send analytics data to the relay-proxy.
  • ✅ Caching (cache the previous evaluation to reduce the number of API calls).
  • ✅ Polling (call an API on the relay-proxy regularly to purge the cache when a configuration change happens on the relay-proxy).
  • ✅ Eventing (this version of the provider is supporting OpenFeature eventing).

⚠️ BREAKING CHANGE

This version contains breaking changes on the configuration struct:

  • ⚠️ You cannot use the GO module in the provider.
    (In order to minimize the dependencies of the GO provider, we have removed the dependency to thomaspoignant/go-feature-flag, this means that you can't use the GO module with this provider anymore BUT you can now use the new provider for this feat(go-feature-flag): GO Feature Flag in process using GO module #546).
  • ⚠️ In the configuration, we removed the interface HTTPClient to use directly *http.Client.
  • ⚠️ To have a fully working cache, you need to have a relay-proxy v1.32.0 or more.

Related PR

Fixes #546

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
@mjudeikis
Copy link
Contributor

Still need to read this code few times more to get my head around but looks healthy
/lgtm

@toddbaert
Copy link
Member

Will review.

@toddbaert toddbaert self-requested a review August 14, 2024 17:01
@thomaspoignant thomaspoignant merged commit 6d77738 into main Aug 14, 2024
5 checks passed
@thomaspoignant thomaspoignant deleted the goff-provider-v1 branch August 14, 2024 19:46
@dangra
Copy link
Contributor

dangra commented Sep 9, 2024

Wanted to point this change causes a panic under certain conditions as explained in #578 and attempted a fix in #579

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants