The moment we flipped the new feature flag, accounts multiplied like wildfire. Roles split, merged, and replicated across our systems without warning. What started as a clean access model became an unmanageable storm: a large-scale role explosion. Permissions ballooned, service accounts overlapped, and nobody could tell which roles were critical and which were dead weight.
Large-scale role explosion happens when growth outpaces control. Microservices multiply. Each team adds new endpoints. Every app requests its own permission set. Soon, the role table swells beyond reason, security audits choke, and developers lose days combing through JSON policies. Systems that worked fine at 100 users melt down at 10,000. Without enforcement, chaos wins.
The core problem isn’t just growth—it’s weak enforcement. When permissions aren’t strictly enforced, old roles linger. When there’s no central point of control, similar roles compete and permissions drift. Every patch adds more variance. Multiply that across environments, services, and teams, and you’ve got a hidden infrastructure liability waiting to become a breach.
The fastest way to stop role explosion is to make enforcement automatic. That means: