Skip to content

Conversation

@jaeopt
Copy link
Contributor

@jaeopt jaeopt commented Feb 9, 2026

Summary

Excludes CMAB experiments from UserProfileService (UPS) logic to prevent sticky bucketing that contradicts CMAB's dynamic decision-making nature.

Jira Ticket: FSSDK-12262

Changes

  • Modified decision_service.rb to exclude CMAB experiments from UPS lookup and save operations
  • Added decision reasons when UPS is skipped for CMAB experiments
  • Ensures CMAB experiments receive fresh decisions on each evaluation

Rationale

UPS maintains decisions across the experiment lifetime without considering TTL or user attributes, which contradicts CMAB's dynamic nature. CMAB experiments require fresh decisions each time to properly evaluate contextual signals.

Testing

  • All existing tests pass
  • Added comprehensive test coverage for CMAB UPS exclusion
  • Implementation follows acceptance criteria:
    • ✅ Update SDK to exclude CMAB from UPS
    • ✅ Add UPS exclusion to decision reason

🤖 Generated with Claude Code

jaeopt and others added 3 commits February 5, 2026 13:09
- Skip UPS lookup for CMAB experiments to ensure dynamic decisions
- Skip UPS save for CMAB experiments to prevent sticky bucketing
- Add decision reason explaining UPS exclusion for CMAB
- Add test to verify UPS is not used for CMAB experiments

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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.

1 participant