Percentage-based Feature Flags should return the same value within the same request

See gitlab-com/gl-infra/production#16366 (comment 1559481844)

We could probably use SafeRequestStore

CC: @manojmj @bwill

Proposal

  1. We ban using percentage of time => #425428 (closed)
  2. We introduce request based actor. This ensures that for a X% percentage of actors rollout, the Feature.enabled?(:key, request) will always return the same value within the same request.
  3. Migrate optimize_routable FF to use current request actor
  4. We add ability in chatops for --requests N where N can be 0 to 100. Just use https://docs.gitlab.com/ee/development/feature_flags/controls.html#percentage-based-actor-selection

Follow-up issues

Edited by Thong Kuah