Start here. This is the direct spoken answer to practice first.
Why this question matters
Feature flags are production controls. A backend design needs more than a boolean in configuration because targeting, audit, failure behavior, and cleanup matter.
I would store flags with name, description, owner, default value, target rules, rollout percentage, and cleanup date. The application would evaluate flags through a small service so code does not spread raw config lookups everywhere. Risky features can be deployed off, enabled for internal users, then rolled out gradually. A kill switch lets operators disable a bad path quickly.