I've seen that disconnecting the deployment of code from releasing of features can be transformative in various ways that fit better with an API-based model for Feature Flags:
- Many flags / remote config changes in production environments are made by non-developer members of a team.
- Coordinating releases across multiple platforms that have different deployment cycles. For example, deploying a new feature to Mobile + Web + APIs simultaneously.
- Enabling / disabling flags in real-time across your stack to respond to incidents.
- Support / Sales teams using Flags to gate features for customers.
- Remote config to populate data for UIs, to act as a CDN for content.
- Rolling out infrastructure changes, being able to roll back changes instantly without another deployment.
(And for context: our Feature Flag decisioning is done locally for our local bucketing server SDKs)