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

Disable 5 second delay before returning feature flag value #10897

Merged
merged 1 commit into from
Jun 24, 2022

Conversation

jankeromnes
Copy link
Contributor

Description

While debugging with @easyCZ why getting feature flag values was sometimes so slow, we found that by default, our experiments client waits for 5 seconds before returning the initial value (see all options):

Screenshot 2022-06-24 at 12 57 35

Disabling this delay makes getting feature flag values instantaneous. 🪄 ⚡

Related Issue(s)

Fixes #10786

How to test

  1. Create a team called "Gitpod"
  2. Go to Team Billing
  3. The Usage-Based UI should be instantly visible, even if you reload the page

Release Notes

NONE

Documentation

Werft options:

  • /werft with-preview
  • /werft with-payment

…lag value

Co-authored-by: Milan Pavlik <milan@gitpod.io>
@jankeromnes jankeromnes marked this pull request as ready for review June 24, 2022 11:04
@jankeromnes jankeromnes requested a review from a team June 24, 2022 11:04
@github-actions github-actions bot added the team: webapp Issue belongs to the WebApp team label Jun 24, 2022
Copy link
Contributor

@andrew-farries andrew-farries left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/hold

@@ -35,6 +36,7 @@ export function newNonProductionConfigCatClient(): Client {
// clientKey is an identifier of our ConfigCat application. It is not a secret.
const clientKey = "WBLaCPtkjkqKHlHedziE9g/LEAOCNkbuUKiqUZAcVg7dw";
const client = configcat.createClient(clientKey, {
maxInitWaitTimeSeconds: 0,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the purpose of the default wait time of 5 seconds? Any downsides to setting it to 0?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm also surprised 5 secs was the default value, but my guess is that it's to ensure it doesn't slow down load of other assets.

In some use-cases, they instantiate the client inside index.ts and use afterwards.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know, but agree with @easyCZ's theory. 👍

Unfortunately, there seems to be no documentation for this feature apart from the one-line description shown in my PR description (see also ConfigCat's source code)

Digging a bit into ConfigCat's history, it looks like this feature was already part of this initial commit, which unfortunately doesn't provide much context as to why this feature is useful. 🙈

@jankeromnes
Copy link
Contributor Author

/unhold

@roboquat roboquat merged commit af5ef7a into main Jun 24, 2022
@roboquat roboquat deleted the jx/fast-config-flag branch June 24, 2022 11:36
@roboquat roboquat added deployed: webapp Meta team change is running in production deployed Change is completely running in production labels Jun 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deployed: webapp Meta team change is running in production deployed Change is completely running in production release-note-none size/XS team: webapp Issue belongs to the WebApp team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Slow evaluation of feature flags causes UI issues
4 participants