Feature Flags Flexible Rollout Strategy
Problem to solve
When you use our percent rollout today, the stickiness is determined by the user ID (meaning the user must be logged in). Unleash doesn't commit to stickiness for Anonymous users.
With this new strategy, you can define the stickiness - so it can be based by session ID, user ID or random (no stickiness) so it gives you more control over the rollout.
This will also open the option for supporting stickiness for anonymous users.
Intended users
- Parker (Product Manager)
- Delaney (Development Team Lead)
- Sasha (Software Developer)
- Devon (DevOps Engineer)
Further details
A flexible rollout strategy which combines all gradual rollout strategies in to a single strategy (and will in time replace them). This strategy have different options for how you want to handle the stickiness, and have sane default mode.
Unleash now supports a flexible rollout strategy that wraps 3 other strategies (one of which that we support) in one.
It may be good for us to support this strategy so that we may cover more possible use cases with less development effort.
UX Proposal
Replace percent rollout strategy to flexible rollout strategy with the following UI mockup.
Type should be renamed Rollout Type
.
Based on options:
- Available ID
- User ID
- Session ID
- Random (no stickiness guaranteed)
New Terminology
- Flexible rollout => Percent
- Stickiness => Based on
- Default => All available
- User ID, Session ID, Random stay the same
default value shall be strategy: Percent rollout
with value 100%
.
Links / references
https://unleash.github.io/docs/activation_strategy#flexiblerollout