Remote Config should feel reliable even when the network is not perfect. AppActor SDKs are built around fetch, cache, typed reads, and app-owned local defaults.

What the SDK returns

The SDK returns resolved config items: The response is already resolved for the current app context. The SDK does not need to evaluate rules locally.

Cache layers

SDK implementations use the same product contract with platform-specific caching: iOS keeps a short memory TTL and can fall back to disk cache on network or server errors after a successful fetch. Wrapper SDKs expose the same resolved item model from the native layer.

Cold start fallback

The app must still own a local default for required UI decisions:
Use server defaults for remote control and local defaults for app safety. That way a first install with no cache can still render.

User context

Some Remote Config rules need entitlement state. When a config requires user context, the SDK can refetch with the current user so AppActor can evaluate active entitlements before returning the value. This matters when:
  • premium users should see a different upsell
  • expired users should see win-back copy
  • trial users should not receive a purchase CTA meant for free users

Debug checklist

When a value looks wrong, check:
  • whether the config is active
  • whether a more specific app or platform scope overrides the project value
  • whether an earlier priority rule matched first
  • whether app version and country are present in the request context
  • whether entitlement-based rules need a configured user
  • whether the client is reading a stale cached value during a short TTL window
AppActor’s current SDK contract is cache-backed plus app-owned local defaults, not a separate downloadable fallback-file API.