Is this for Android or server-side Java? For server-side, we recommend creating a new Context for every incoming request. The context has targeting attributes unique to the request/user so this approach keeps the code much simpler. When the feature repository updates, any new Context objects created after that point will pick up the new features. You likely don't want feature values to change half way through a single HTTP request anyway.