SDKs: a hook called on each exposure, to send assignments to your own analytics

Abierto
#1,499 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
csharp, go, java, javascript, python, react, react-native

Línea de trabajo

The issue spans the JavaScript, Python, Go, React, React Native, Java and .NET SDKs, so there is no single file to jump into; each client constructor needs an optional callback plus the plumbing that records exposures server-side. Start by finding where each SDK evaluates a flag and caches the answer, so the hook fires once per exposure rather than per evaluation, and check the React server-render/hydration path for duplicate calls. Done means the callback receives experiment key, variant and user id once per exposure, errors from it are swallowed, the holdout/targeting case is decided and documented, and each SDK's docs show one example per analytics tool. A newcomer could instead pick one SDK and add the docs example for a single analytics tool as a scoped first step.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

The SDKs record exposures on the server, but nothing lets an application see them. A team that analyses experiments
in its own analytics tool or warehouse (Segment, GA4, Amplitude, Mixpanel, RudderStack) has no way to send each
assignment there.

Expected:

  • An optional callback, set when the client is created, called once per exposure with the experiment key, the
    variant and the user id. Whether it is called when the user was not assigned (a holdout, a mutual exclusion group or
    targeting, where the server records no exposure) is decided and documented.
  • Once per exposure, not once per evaluation: repeated and cached answers, and React's server render followed by
    hydration, do not call it twice.
  • An exception thrown in the callback never reaches the caller or changes the answer.
  • In the JavaScript, Python, Go, React, React Native, Java and .NET SDKs, with one example per common analytics tool
    in the docs. (The OpenFeature providers use OpenFeature's own hooks.)
Lenguaje dominante
Python
Estrellas
0
Forks
4
Merge medio
5 h 19 min
PR fusionados (30 d)
503

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Controlvar/controlvar

Todos los issues de Controlvar/controlvar

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.