Skip to content

Allow to evaluate specific flags #292

Open
@n9niwas

Description

Is your feature request related to a problem? Please describe.
Currently when client is initialized, it evaluates all flags in the environment.
We have hundreds of flags, but only use handful of them at a time, on different lazy-loaded pages.
This is causing several issues:

  1. you can't tell when a particular flag was really requested, all of them are evaluated "minutes ago" (basically whenever someone visits the site)
  2. flags are immediately visible in production whenever a new flag is created in lower environment, which increases the risk of unexpected feature toggling
  3. experiments attached to these flags receive traffic

Describe the solution you'd like
We would like to see an option in JS SDK to evaluate specific flags.
One way to achieve it is to disable evaluation of all flags in client initialize() method and add an async function to request a specific flag key (or array of keys) later on.

Describe alternatives you've considered
We could probably define a different context for each lazy-loaded part of application, but maintaining this gets hard as application(s) scale up.
Another solution is to hide flags behind a custom REST API, but that makes client JS SDK pointless.

Additional context
This is not a problem for backend/mobile apps as we could request specific flags there.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions