Percentage Rollout of Rules

In addition to Shadow Mode, Sliderule allows you to gradually roll out rules to a percentage of your active population. For example, you could roll out a rule to 33% of traffic for a week and see how your rule performs over that week. Once you're satisfied, you can then roll the rule out to the rest of your users.

Setting up Percentage Rollout

When editing a rule, you can change its status to Percentage Rollout. Click on the Status dropdown, and select Percentage Rollout. Then enter the percent of traffic you want to be included in this rule.

You'll need to click save and then deploy the new version of the workflow, in order for your changes to take effect.

Viewing results

When viewing the execution record of a workflow, either through the Test Workflow interface or on the History page, Sliderule helps differentiate rules that didn't fire because they weren't active (not part of the population receiving the test treatment) from rules that didn't fire because their conditions were not met:

  • Conditions True, included in test population - both condition and action will show in normal text, and a green % Rollout chip will appear in the row, indicating that the rule was rolled out for this execution

  • Conditions True, but not included in test population - you'll see the action part of the rule greyed out, and a red % Rollout chip in the row, indicating that the action part of the rule did not fire because the rule was not rolled out for this execution

For the cases where the conditions were not met, you'll need to turn on the "Show Rules that didn't Fire" toggle switch at the top of the results table. In both cases, you'll see a row appear for that rule with a greyed out background, to indicate that this rule did not fire.


Using a Random seed

Sliderule also supports random seeds to ensure consistency in who receives the test treatment. For example, you could enter customer.id in the optional Seed section of the percentage rollout configuration, to ensure the same treatment is always provided for the same value of customer.id