Feature toggles allow modifying system behavior without changing code. They can be used to hide unfinished features, limit access to features, gracefully degrade systems under high load, and perform A/B testing. Feature toggles are categorized based on how long they live and how dynamic the toggling decision is. They include release toggles for incomplete code, experiment toggles for A/B testing, ops toggles for performance, and permissioning toggles for access control. Feature toggle libraries like Rollout make it easy to activate, deactivate, and manage feature toggles for different users, groups, or percentages of users.