Skip to content

Conversation

@bgiori
Copy link
Collaborator

@bgiori bgiori commented Sep 17, 2024

Summary

  • Add ExperimentPlugin modeled after analytics plugin interface.
  • Add addPlugin method to ExperimentClient.
  • New plugin, IntegrationPlugin handles getting user identity and tracking exposures
    • initializeWithAmplitudeAnalytics now installs the AmplitudeIntegrationPlugin instead of ConnectorUserProvider and ConnectorExposureTrackingProvider.
  • IntegrationManager handles managing IntegrationPlugins for the client.
    • Adds event persistence to experiment SDK
    • Re-implements experiment deduping using session storage rather than in-memory storage.

Checklist

  • Does your PR title have the correct title format?
  • Does your PR have a breaking change?: NO

@bgiori bgiori requested review from tyiuhc and zhukaihan September 17, 2024 18:40
}
this.integration = integration;
if (integration.setup) {
this.integration.setup(this.config, this.client).then(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can plugins make modifications to config, or do we want to pass in a copy of config?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm, interesting thought. I'm actually not quite sure what the right answer is. I kind of like the flexibility that they could change config.

@bgiori bgiori merged commit 58446e2 into main Oct 10, 2024
6 checks passed
@bgiori bgiori deleted the integration-plugin branch October 10, 2024 16:59
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

Successfully merging this pull request may close these issues.

4 participants