Phased Rollout

Learn how to control the percentage of users who receive your releases with Stallion's phased rollout feature.

Phased Rollout

Phased rollout is a powerful feature that allows you to control how many users receive your latest release. When you promote a release to production, you can specify the exact percentage of your user base that should receive the update, enabling you to deploy changes gradually and safely.

How Phased Rollout Works

When a user opens your app, the Stallion SDK automatically checks for available releases. If your latest release is configured for phased rollout (less than 100%), the system uses a random selection algorithm to determine whether that specific user should receive the update.

Important:

The system only checks the latest non-rolled back, non-paused release before the current release. It does not keep checking back through multiple previous releases.

Release Selection Logic

The SDK follows this decision process:

  1. Check Latest Release: If the user is eligible for the latest release (based on the rollout percentage), they will receive it
  2. Check Previous Release: If the user doesn't qualify for the latest release, the system checks the most recent non-rolled back, non-paused release before the current one
  3. Release Decision:
    • If the previous release is at 100% rollout, the user receives that release
    • If the previous release is not at 100% rollout, the user receives no release

Important:

The rollout percentage is calculated based on unique user IDs (UIDs) generated by the Stallion SDK during app initialization. Each user is assigned a unique UID that determines their eligibility for phased releases.

Examples

Example 1: Gradual Feature Rollout

Scenario: You've released a new feature and want to test it with a small percentage of users before full deployment.

Setup:

  • Release A (previous): 100% rollout
  • Release B (latest): 25% rollout

User Experience:

  • 25% of users will receive Release B with the new feature
  • 75% of users will continue using Release A (the stable version)
  • You can monitor adoption metrics and gradually increase the percentage

Example 2: Critical Bug Fix

Scenario: You need to deploy a critical bug fix immediately but want to ensure stability.

Setup:

  • Release A (with bug): 0% rollout (paused)
  • Release B (bug fix): 50% rollout

User Experience:

  • 50% of users will receive Release B with the bug fix
  • 50% of users will receive no release (since Release A is paused and there is no other release before release A)
  • You can monitor for any issues and increase to 100% once confirmed stable

Example 3: Previous Release Not at 100%

Scenario: You have multiple releases where the previous release is also not fully rolled out.

Setup:

  • Release A (old): 30% rollout
  • Release B (latest): 25% rollout

User Experience:

  • 25% of users will receive Release B (latest)
  • 75% of users will receive no release (since Release A is only at 30%, not 100%)
  • This demonstrates why it's important to ensure previous releases reach 100% before deploying new ones

Beta Testing:

Want to test releases before rolling them out to users? Learn how to use Beta Testing to safely test releases at 0% rollout with your internal team.

Managing Phased Rollouts

Setting Rollout Percentage

  1. Navigate to Releases in your Stallion dashboard
  2. Select your target app version
  3. Click Manage Release
  4. Adjust the rollout slider to your desired percentage
  5. Click Update Release

Important:

Rollout percentage cannot be decreased once increased. You can only increase the percentage or pause/rollback the release. Plan your rollout strategy carefully before increasing the percentage.

Monitoring Rollout

Use the Adoption Dashboard to monitor:

  • Download statistics
  • Installation success rates
  • User adoption patterns
  • Rollback incidents

Best Practices

Best Practice:

Start with a small percentage (5-10%) for new features and gradually increase based on monitoring results.

  • Start Small: Begin with 5-10% rollout for new features
  • Monitor Closely: Watch adoption metrics and user feedback
  • Gradual Increase: Increase rollout percentage in stages (25%, 50%, 75%, 100%)
  • Have a Rollback Plan: Always be prepared to pause or rollback if issues arise
  • Test Thoroughly: Use internal testing with 0% rollout before public release

Rollout States

Active Rollout

  • Release is being distributed to users
  • Rollout percentage can be adjusted
  • Users are receiving updates based on the percentage

Paused Rollout

  • Release is paused and not distributed to new users
  • Existing users who already have the release keep it
  • Can be resumed later

Rolled Back

  • Release is completely removed
  • Users fall back to the previous stable release
  • Can be un-rolled back to resume distribution