Entitlements — Decoupling What Customers Can Do from What They Pay
Scattered through most SaaS codebases is the same bug factory: `if plan == "pro"` checks guarding features. They work until the first pricing change, when "pro" splits into three plans, grandfathered customers keep old capabilities, sales grants an exception, and a trial needs temporary access — and suddenly product code is re-implementing billing logic badly. Entitlements are the missing layer: a dedicated system answering "may this customer do X?" so that product code never asks about plans at all.
Entitlements decouple what customers can do from what they pay: features (boolean, limit, quota), grants with sources and validity, and resolution behind one fast cached check — with plans demoted to versioned bundles. Pricing re-packages freely without product deploys, and exceptions become auditable.