Provide a sync + non-blocking API when server-side evaluation is enabled
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
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- rust
- Área
- backend-api-design
Línea de trabajo
Comienza leyendo la ruta de inicialización en torno a flagsmith.options.enable_local_evaluation, update_environment y eval_context. Compara las rutas de evaluación local y de evaluación del lado del servidor, y define qué deberían exponer las APIs síncronas y no bloqueantes; se considerará terminado cuando la evaluación del lado del servidor ya no requiera una obtención inmediata y la evaluación local siga siendo utilizable en contextos síncronos y asíncronos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
We'd like to use this SDK in a variety of different services were performance matters. We almost only use it with local side evaluation and in different contexts, sync, async and sometimes in async contexts but with manual future implementation, for example when implementing tower services (https://docs.rs/tower-service/latest/tower_service/).
It appears that if server side evaluation is enabled there is no need to do any fetch eagerly. Cf this related code:
if flagsmith.options.enable_local_evaluation {
// Update environment once...
if let Err(e) = update_environment(&client, &ds, &environment_url) {
log::warn!("Failed to fetch environment on initialization: {}. Will retry in background.", e);
}
with update_environment writing to the the eval_context.
It would be nice if we could split this API between local evaluation and remote evaluation because they do not actually have the same bounds. And local could work in any contexts without sync/async issues.
I'd be happy to discuss this and eventually work on this if this direction is accepted.
- Lenguaje dominante
- Rust
- Estrellas
- 8
- Forks
- 9
- Merge medio
- 20 h 41 min
- PR fusionados (30 d)
- 2
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Flagsmith/flagsmith-rust-client
-
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Flagsmith/flagsmith-rust-client#58 · 1 comentario ·
-
Local evaluation silently drops identity overrides on large environmentsPosiblemente ocupada @marc-merino la tomó hace 8 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 58/100
Flagsmith/flagsmith-rust-client#43 · 1 comentario ·
Todos los issues de Flagsmith/flagsmith-rust-client
Issues similares
-
agent:triaged bug bughunt pm:pipenv priority:p1
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
SocketDev/socket-patch#1608 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
adorsys/status-list-server#698 ·
Los mantenedores suelen responder en 2 días
-
Expose the dot grid colourAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
nannou-org/egui_graph#92 ·
Los mantenedores suelen responder en 1 día
-
documentation good first issue
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
sujithputta02/Esapay#13 ·
-
Deduplicate normalized_f64_bits (hash_table.rs and bloom_filter.rs)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
tursodatabase/turso#10002 ·
Los mantenedores suelen responder en 1 día