Skip to content

[AI-FSSDK] [FSSDK-12337] Add Feature Rollout support#442

Merged
Mat001 merged 5 commits intomasterfrom
ai/farhananjum-opti/FSSDK-12337-feature-rollouts
Mar 30, 2026
Merged

[AI-FSSDK] [FSSDK-12337] Add Feature Rollout support#442
Mat001 merged 5 commits intomasterfrom
ai/farhananjum-opti/FSSDK-12337-feature-rollouts

Conversation

@FarhanAnjum-opti
Copy link
Copy Markdown
Contributor

@FarhanAnjum-opti FarhanAnjum-opti commented Mar 13, 2026

Summary

Adds Feature Rollout support to the Go SDK. Feature Rollouts are a new experiment rule type that combines Targeted Delivery simplicity with A/B test measurement capabilities. During project config parsing, the "everyone else" variation from the flag's rollout is injected into any experiment with type "feature_rollout", enabling correct evaluation without changes to decision logic.

Changes

  • Added optional Type string field to both the datafile entity and SDK Experiment entity
  • Added config parsing logic to inject the "everyone else" rollout variation into feature_rollout experiments
  • Added traffic allocation entry (endOfRange=10000) for the injected variation
  • Updated variation lookup maps (Variations, VariationKeyToIDMap) with injected variation
  • Added 6 unit tests covering feature rollout injection, edge cases, and backward compatibility

Jira Ticket

FSSDK-12337

Copy link
Copy Markdown
Contributor

@Mat001 Mat001 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@FarhanAnjum-opti I would perhaps (optionally) add a test for invalid experiment type:

func TestInvalidExperimentTypeReturnsError(t *testing.T) {
// Test that datafile with type="unknown_type" returns error
}

@Mat001 Mat001 merged commit 8d64c55 into master Mar 30, 2026
12 checks passed
@Mat001 Mat001 deleted the ai/farhananjum-opti/FSSDK-12337-feature-rollouts branch March 30, 2026 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants