Add exposureHook for control over exposure logging #42
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This allows us to decouple evaluation from exposure logging. We can check local or distributed caches if we've already reported this exposure, without blocking the gate/experiment evaluation.
One issue with this PR I already foresee: I imagine Statsig would like to retain control over the de-duplication logic. Possibly, the hook could accept a dedupe key additionally? (I hadn't spotted that we already have a method for deriving a dedupe key in the SDK when I initially implemented this. 🙈)
I don't expect this PR to merge (at least, as is). Mostly, I'm hoping to open the conversation about how Statsig might support the eval/exposure logging decoupling (ideally, with some supported wire format for the exposure itself).
(Experiments/Layers haven't had the equivalent changes made to them yet - but I can come back and update those if Statsig are keen.)