What MobileConfig is
A config in MobileConfig is a set of strongly typed parameters that control aspects of an application's behaviour. The system exposes a cross-platform, strongly typed API to supported applications and services so that developers can read config parameters easily. Each parameter can hold a static value, such as true or false, or be tied to an internal Meta experimentation or configuration tool that supplies the value during a sync. MobileConfig has been in production since 2015.
- Cross-platform configuration-management system
- Strongly typed config parameters
- Static values or values supplied by backend tools
- In production since 2015
Client-server model and caching
MobileConfig uses a pull model: the client requests fresh values from the server on application start and then periodically throughout a session, so that it has access to up-to-date configuration values. The client side always reads from a cache that is refreshed periodically and at app start, and values are locked per session while the user interacts with the app to ensure consistency and prevent unexpected changes. The client cache is stored in a flat-buffer file containing arrays for each supported primitive type, including booleans, integers, doubles and longs. At build time, MobileConfig generates an integer value for each config or parameter used.
- Values pulled on app start and periodically during a session
- Session-locked values for consistency
- Flat-buffer client-side cache
- Arrays for booleans, integers, doubles and longs
Evaluation and backend platforms
When the client requests new values, the server generates them based on the client context and the backend tools assigned to each parameter, a process described as evaluation. Evaluation is what allows a single unified client API to support several configuration, feature-flagging and experimentation platforms within Meta. Those platforms include the feature-flagging platform Gatekeeper (GK), the experimentation platform Quick Experiment (QE), and a utility for providing static values, each using dynamic user and request context so that values are tailored to individual end users. Developers can adjust values through these tools, keeping parameter values dynamic and supporting experimentation and the deployment of new performance features.
- Gatekeeper (GK) for feature flagging
- Quick Experiment (QE) for experimentation
- Static-value utility
- Server-side evaluation using client context
Key features
The published account of MobileConfig sets out its design features and optimisations alongside the practices it supports. Named features include Emergency Push, feature flagging and experimentation, and Mobile Config Canary. Scale and optimisation are also treated as part of the system's design.
- Emergency Push
- Feature flagging and experimentation
- Mobile Config Canary
- Scale and optimisation
Published material
MobileConfig is documented in an article published in the @Scale Conferences articles collection, dated 2023. The piece is credited to additional authors Amit Adhikari, Tong Bao, Diedi Hu, Matt Guo, Zhao Wang and Arjun Bhasin. It covers the system's design, its client-server model and its role in mobile agile development at Meta.
- Article type, 2023
- Hosted on atscaleconference.com
Sources
-
Mobile Configuration at Meta: The Key to Mobile Agile Development at Scale | At Scale Conferences https://atscaleconference.com/mobile-configuration-at-meta-the-key-to-mobile-agile-development-at-scale/ Verified 31 Oct 2026
Last verified 16 Sep 2026. This entry is compiled from the public web pages listed above. Nothing here is stated that those pages do not, and each of them was read on the date shown.