Overview
ABC client SDKs enable you to run experiments and check feature flags on your web and mobile apps. Generally, using the ABC client SDKs involves three steps, as illustrated in the diagram below:
1. Initialization
Upon the startup of your client application, you need to initialize the ABC SDK with your project ID
and API access key
. The SDK then sends a request to the nearest of our globally deployed evaluation servers to fetch the experiment and feature flag results for the logged-in user. These results are stored locally for future usage. After initialization, the client SDK polls ABC evaluation servers every 10 minutes for updates.
2. Evaluating Experiments and Feature Flags
When the customer code calls the ABC SDK via the getExperiment
or getFeatureFlag
API, the SDK return the results stored in local cache instantly.
3. Logging Experiment Assignment Exposure
For experiments and feature flags with enabled experimentation, we offer two methods of logging exposures. Firstly, the SDK will automatically log exposures when you call the getExperiment
or getFeatureFlag
APIs. Secondly, in certain scenarios where you need to log exposures manually at a later time, we provide a standalone API, LogExperimentExposure
. In both methods, the exposures are accumulated locally and periodically flushed to the ABC server.
FAQs
Where does the evaluation for the ABC client SDK occur?
All evaluation logic occurs in the ABC evaluation server.
What is the overall latency for the APIs of the ABC client SDK?
As the evaluation are precomputed thus the latency for the APIs is extremely low.
How long does it take for my update to reach the users?
The update delivery time consists of two parts: the time taken to deliver the update from the DB to our global evaluation servers, and the time taken for the updates to sync to the ABC client SDK via its periodic poll. The total delay would be around 10 minutes.
How does ABC ensure system reliability?
ABC evaluation servers are globally deployed across multiple regions and can auto-scale to handle traffic spikes.