Storage Service
Storage Service is a caching layer that persists data about your users. This helps ensure that variation assignment for any user is always consistent even if you update the traffic split or other campaign settings.
You can implement a storage service that reads and saves user-campaign data mapping in backend services such as Redis, Memcache, MongoDB, or any other storage service.
How to Implement Storage Service
Storage Service is optional while instantiating the VWO SDK. However, to ensure sticky variation assignments, we recommend implementing it.
Usage
import com.vwo.packages.storage.Connector;
import java.util.HashMap;
import java.util.Map;
public class StorageTest extends Connector {
private final Map<String, Map<String, Object>> storage = new HashMap<>();
@Override
public void set(Map<String, Object> data) throws Exception {
String key = data.get("featureKey") + "_" + data.get("user");
// Create a map to store the data
Map<String, Object> value = new HashMap<>();
value.put("rolloutKey", data.get("rolloutKey"));
value.put("rolloutVariationId", data.get("rolloutVariationId"));
value.put("experimentKey", data.get("experimentKey"));
value.put("experimentVariationId", data.get("experimentVariationId"));
// Store the value in the storage
storage.put(key, value);
}
@Override
public Object get(String featureKey, String userId) throws Exception {
String key = featureKey + "_" + userId;
// Check if the key exists in the storage
if (storage.containsKey(key)) {
return storage.get(key);
}
return null;
}
}
Storage Service should expose two methods: get and set. VWO uses these methods whenever there is a need to read or write from the storage service.
Method Name | Params | Description | Returns |
---|---|---|---|
get | key | Retrieve stored data | Returns a matching user-campaign data mapping corresponding to the key passed |
set | key, data | Store user-campaign-variation data mapping. | null |
Updated 4 months ago
What’s Next