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

basic A/B Testing support, though a percentile value #219

Closed
credmond-git opened this issue Oct 3, 2024 · 1 comment
Closed

basic A/B Testing support, though a percentile value #219

credmond-git opened this issue Oct 3, 2024 · 1 comment
Assignees
Milestone

Comments

@credmond-git
Copy link
Collaborator

credmond-git commented Oct 3, 2024

Support some form of dynamic property that depending on a percentile will give a different result each time it is called.

Possible
feature.enabled=${percent:10=true:=false}
feature.value=${percent:10=A,20=B,60=C:=F}

The lowest value that is greater than the percent rolled is selected.
The value should not be cached, and re-rolled each time.

We may want to use a different delimiter than ${} as the ${} represents a value that is computed at load time. Where as this is computed at run time.

@credmond-git credmond-git self-assigned this Oct 3, 2024
@credmond-git
Copy link
Collaborator Author

credmond-git commented Oct 9, 2024

We need to differentiate between immediate evaluation at load time and deferred evaluation when getting the configuration.

https://jakarta.ee/specifications/expression-language/6.0/jakarta-expression-language-spec-6.0#eval-expressions

the ${expr} construct for immediate evaluation and the #{expr} construct for deferred evaluation. This difference in delimiters points out the semantic differences between the two expression types in the Jakarta EE web tier. Expressions delimited by #{} are said to use “deferred evaluation” because the expression is not evaluated until its value is needed by the system. Expressions delimited by ${} are said to use “immediate evaluation” because the expression is compiled when the JSP page is compiled and it is executed when the JSP page is executed. More on this in Section 1.2.4, “Syntax restrictions”.

credmond-git added a commit that referenced this issue Nov 17, 2024
…ated pair of a threshold and its corresponding value. If an element has no threshold, it is treated as the default. For example, the format "10:red,30:green,blue" defines ranges and outcomes for random distributions: numbers from 1 to 10 correspond to red, 11 to 30 correspond to green, and all numbers above 30 default to blue. #219
@credmond-git credmond-git added this to the Gestalt 1.0 milestone Nov 18, 2024
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

No branches or pull requests

1 participant