Remote Evaluation
Server SDKs do not support Remote Evaluation.
Remote Evaluation is a mode in which the Hackle server evaluates the user in advance and the SDK looks up the result.
Because evaluation is based on user information stored on the Hackle server, use this mode when distribution must be based on the latest user information stored on the server.
Using Remote Evaluation
You can use Remote Evaluation by setting evaluationMode to Remote Evaluation when initializing the SDK.
For platform-specific setup, see Configuration in Evaluation Mode.
Feature Support
Remote Evaluation evaluates based on user information stored on the Hackle server. Because evaluation runs on the server, the SDK communicates with the server to re-evaluate when user information changes.
A/B Test distribution
✅
✅
Feature Flag decision
✅
✅
Remote Config lookup
✅
✅
Evaluation based on user information stored on the device
✅
❌
Evaluation based on user information stored on the server
❌
✅
Re-evaluation without server communication when user information changes
✅
❌
How It Works
The Hackle server evaluates A/B Tests, Feature Flags, and more for the user in advance, and the SDK fetches only the evaluation results and stores them internally. When distribution is needed, it looks up the stored evaluation results.
On SDK initialization, the SDK sends user information to the Hackle server.
The Hackle server evaluates A/B Tests, Feature Flags, and more for the user, and the SDK fetches the evaluation results and stores them internally.
On a distribution/decision call, the SDK looks up the stored evaluation results. No network call occurs in this process.
If user information has not changed, the SDK looks up the stored evaluation results, so distribution is handled without network delay.
When User Information Changes
When the User Identifier changes (setUser, setUserId, setDeviceId, resetUser) or User Properties are updated, the SDK sends the updated user information to the Hackle server and fetches the latest evaluation results to refresh what it has stored.
Remote Evaluation communicates with the server to run evaluation again whenever user information changes.
Because it goes through the update user information → server evaluation → apply result flow, there is latency before the latest result is applied.
Reflecting Dashboard Changes
With Remote Evaluation, the SDK stores and looks up evaluation results that the Hackle server performed in advance. Therefore, it returns results based on when the evaluation was performed, not on the Dashboard settings at the moment the distribution/decision was called.
Evaluation is performed at the following points, and the evaluation results stored in the SDK are refreshed at that time.
On SDK initialization
When user information is updated (
setUser,setUserId,setDeviceId,resetUser, User Property update)
Although Remote Evaluation runs evaluation on the Hackle server, it does not communicate with the server to re-evaluate with the latest configuration on every distribution call.
Even if you adjust an A/B Test's traffic allocation or turn a Feature Flag on or off in the Dashboard, the SDK looks up the existing evaluation results until it fetches the evaluation results again.
Last updated