Why remote config exists

Publishing a mobile app update in the App Store or Google Play takes anywhere from a few hours to a
few days of review. Yet most changes in an e-commerce app need no code change at all — they are
configuration: banner copy, promotion thresholds, switching a new feature on for part of the
audience.

Remote config solves that: the parameters live in the cloud and are delivered to the app at launch.
Changing a banner or a free-delivery threshold takes minutes, with no release.

How remote config works

Cloud service: parameter "promo_banner_text" = "20% off until Friday"
       ↓ (at app launch)
Device: the parameter cache is refreshed (TTL 12 hours)
       ↓
The UI reads the parameter value → shows the current banner

When a value changes on the server, everyone receives the update at their next app launch, or on an
explicit fetch and activate.

Typical e-commerce scenarios

Scenario Parameter Without remote config
A promotional banner promo_banner_text, promo_end_date An app release
The free-delivery threshold free_shipping_threshold: 25 A release plus store review
Switching a new feature on for 10% new_checkout_enabled: true (a 10% segment) A full A/B through a release
An emergency kill switch feature_payments_v2: false A hotfix plus review

Segmentation in remote config

Remote config can deliver different values to different segments:

  • By app version — older builds receive the old parameters, newer builds the new ones.
  • By platform — iOS and Android see different configurations.
  • By audience — people in a particular region, or with particular behaviour.
  • By random percentage — 10% of users receive the test value (the built-in A/B).

Remote config and feature flags together

Remote config often complements a full feature-flag server: remote config for parameters that must
reach mobile fast, feature flags (LaunchDarkly, Unleash) for server-side logic and more elaborate
targeting rules.

Tip: always set default values in the app’s own code in case remote config is unavailable — no
network, an expired TTL. The app must work correctly on defaults without depending on the cloud
service.