GitScrum / Docs
All Best Practices

Feature Flags | Progressive Rollout Guide

Separate deployment from release with feature flags. Gradually increase user percentage while monitoring metrics. GitScrum tracks flagged features.

8 min read

Feature flags separate deployment from release. GitScrum helps teams track flagged features and coordinate progressive rollouts.

Feature Flag Basics

Why Feature Flags

FEATURE FLAG BENEFITS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ WITHOUT FLAGS:                                              β”‚
β”‚ ──────────────                                              β”‚
β”‚ Deploy = Release                                           β”‚
β”‚ All users get feature immediately                         β”‚
β”‚ Rollback requires new deployment                          β”‚
β”‚ Big bang risk                                              β”‚
β”‚                                                             β”‚
β”‚ WITH FLAGS:                                                 β”‚
β”‚ ───────────                                                 β”‚
β”‚ Deploy β‰  Release                                           β”‚
β”‚ Enable when ready                                          β”‚
β”‚ Disable instantly if issues                               β”‚
β”‚ Gradual rollout possible                                  β”‚
β”‚                                                             β”‚
β”‚ ─────────────────────────────────────────────────────────── β”‚
β”‚                                                             β”‚
β”‚ FLAG USE CASES:                                             β”‚
β”‚                                                             β”‚
β”‚ RELEASE TOGGLES:                                            β”‚
β”‚ Deploy incomplete feature, enable when done               β”‚
β”‚ "Ship dark" - code in prod but off                       β”‚
β”‚                                                             β”‚
β”‚ EXPERIMENT TOGGLES:                                         β”‚
β”‚ A/B test features                                         β”‚
β”‚ Compare metrics between variants                          β”‚
β”‚                                                             β”‚
β”‚ OPS TOGGLES:                                                β”‚
β”‚ Kill switch for problematic features                      β”‚
β”‚ Graceful degradation                                       β”‚
β”‚                                                             β”‚
β”‚ PERMISSION TOGGLES:                                         β”‚
β”‚ Premium features for paying users                         β”‚
β”‚ Beta features for early adopters                          β”‚
β”‚                                                             β”‚
β”‚ ─────────────────────────────────────────────────────────── β”‚
β”‚                                                             β”‚
β”‚ CODE EXAMPLE:                                               β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚ β”‚ if (featureFlags.isEnabled('new-search')) {            β”‚β”‚
β”‚ β”‚   return <NewSearchComponent />;                       β”‚β”‚
β”‚ β”‚ }                                                       β”‚β”‚
β”‚ β”‚ return <OldSearchComponent />;                         β”‚β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Progressive Rollout

Rollout Strategy

PROGRESSIVE ROLLOUT STAGES:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ STAGE 1: INTERNAL (0.1%)                                   β”‚
β”‚ ─────────────────────────                                   β”‚
β”‚ β€’ Development team only                                   β”‚
β”‚ β€’ Catch obvious issues                                    β”‚
β”‚ β€’ Duration: 1-2 days                                      β”‚
β”‚                                                             β”‚
β”‚ STAGE 2: EMPLOYEES (1%)                                    β”‚
β”‚ ────────────────────────                                    β”‚
β”‚ β€’ All company employees                                   β”‚
β”‚ β€’ Real-world testing                                       β”‚
β”‚ β€’ Duration: 1-3 days                                      β”‚
β”‚                                                             β”‚
β”‚ STAGE 3: BETA USERS (5%)                                   β”‚
β”‚ ────────────────────────                                    β”‚
β”‚ β€’ Opted-in early adopters                                 β”‚
β”‚ β€’ Collect feedback                                        β”‚
β”‚ β€’ Duration: 3-5 days                                      β”‚
β”‚                                                             β”‚
β”‚ STAGE 4: CANARY (10%)                                      β”‚
β”‚ ─────────────────────                                       β”‚
β”‚ β€’ Random user sample                                       β”‚
β”‚ β€’ Monitor metrics                                          β”‚
β”‚ β€’ Duration: 2-3 days                                      β”‚
β”‚                                                             β”‚
β”‚ STAGE 5: PARTIAL (25%, 50%)                                β”‚
β”‚ ───────────────────────────                                 β”‚
β”‚ β€’ Larger population                                        β”‚
β”‚ β€’ Confirm at scale                                         β”‚
β”‚ β€’ Duration: 1-2 days each                                 β”‚
β”‚                                                             β”‚
β”‚ STAGE 6: FULL ROLLOUT (100%)                               β”‚
β”‚ ────────────────────────────                                β”‚
β”‚ β€’ All users                                                β”‚
β”‚ β€’ Continue monitoring                                      β”‚
β”‚ β€’ Remove flag after stable                                β”‚
β”‚                                                             β”‚
β”‚ ─────────────────────────────────────────────────────────── β”‚
β”‚                                                             β”‚
β”‚ AT EACH STAGE:                                              β”‚
β”‚ β€’ Monitor error rates                                     β”‚
β”‚ β€’ Watch performance metrics                               β”‚
β”‚ β€’ Collect user feedback                                   β”‚
β”‚ β€’ Ready to pause or rollback                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Rollout Tracking

TRACKING ROLLOUTS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ FEATURE FLAG TASK:                                          β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚ β”‚ FLAG-012: New Search Experience Rollout                β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ FLAG NAME: new-search-experience                       β”‚β”‚
β”‚ β”‚ CREATED: Jan 10, 2025                                  β”‚β”‚
β”‚ β”‚ OWNER: @product-lead                                    β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ ROLLOUT PLAN:                                            β”‚β”‚
β”‚ β”‚ β˜‘ Jan 12: Internal (0.1%)                              β”‚β”‚
β”‚ β”‚ β˜‘ Jan 14: Employees (1%)                               β”‚β”‚
β”‚ β”‚ β˜‘ Jan 17: Beta users (5%)                              β”‚β”‚
β”‚ β”‚ β˜‘ Jan 20: Canary (10%)                                 β”‚β”‚
β”‚ β”‚ ☐ Jan 22: 25% (pending approval)                       β”‚β”‚
β”‚ β”‚ ☐ Jan 24: 50%                                           β”‚β”‚
β”‚ β”‚ ☐ Jan 27: 100%                                          β”‚β”‚
β”‚ β”‚ ☐ Feb 10: Remove flag                                  β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ METRICS TO WATCH:                                        β”‚β”‚
β”‚ β”‚ β€’ Search latency (p95 < 200ms)                        β”‚β”‚
β”‚ β”‚ β€’ Click-through rate (β‰₯ baseline)                     β”‚β”‚
β”‚ β”‚ β€’ Error rate (< 0.1%)                                 β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ CURRENT STATUS: 10% rollout                            β”‚β”‚
β”‚ β”‚ Metrics: All green βœ…                                   β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ ROLLBACK TRIGGER:                                        β”‚β”‚
β”‚ β”‚ β€’ Error rate > 1%                                      β”‚β”‚
β”‚ β”‚ β€’ Latency p95 > 500ms                                 β”‚β”‚
β”‚ β”‚ β€’ CTR drops > 20%                                      β”‚β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                             β”‚
β”‚ DAILY CHECK:                                                β”‚
β”‚ β€’ Are metrics within bounds?                              β”‚
β”‚ β€’ Any user complaints?                                    β”‚
β”‚ β€’ Ready for next stage?                                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Flag Management

Flag Lifecycle

FEATURE FLAG LIFECYCLE:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ LIFECYCLE STAGES:                                           β”‚
β”‚                                                             β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚ β”‚ CREATE  │──→│ ROLLOUT │──→│ STABLE  │──→│ REMOVE  β”‚     β”‚
β”‚ β”‚         β”‚   β”‚         β”‚   β”‚         β”‚   β”‚         β”‚     β”‚
β”‚ β”‚ Flag    β”‚   β”‚ 0%β†’100% β”‚   β”‚ 100%    β”‚   β”‚ Delete  β”‚     β”‚
β”‚ β”‚ defined β”‚   β”‚ monitor β”‚   β”‚ confirm β”‚   β”‚ code    β”‚     β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚                                                             β”‚
β”‚ ─────────────────────────────────────────────────────────── β”‚
β”‚                                                             β”‚
β”‚ FLAG DOCUMENTATION:                                         β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚ β”‚ FLAG REGISTRY                                           β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ FLAG                 PURPOSE           STATUS   OWNER   β”‚β”‚
β”‚ β”‚ ────                 ───────           ──────   ─────   β”‚β”‚
β”‚ β”‚ new-search          Release toggle    Rollout  @alex  β”‚β”‚
β”‚ β”‚ dark-mode           Release toggle    100%     @jordanβ”‚β”‚
β”‚ β”‚ premium-export      Permission        Active   @sam   β”‚β”‚
β”‚ β”‚ experimental-ai     Experiment        5%       @pat   β”‚β”‚
β”‚ β”‚ kill-notifications  Ops toggle        Ready    @ops   β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ CLEANUP NEEDED:                                          β”‚β”‚
β”‚ β”‚ β€’ old-checkout: 100% for 30 days β†’ remove ⚠️          β”‚β”‚
β”‚ β”‚ β€’ beta-dashboard: 100% for 60 days β†’ remove πŸ”΄        β”‚β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                             β”‚
β”‚ CLEANUP RULES:                                              β”‚
β”‚ ─────────────                                               β”‚
β”‚ β€’ Flag at 100% for 2+ weeks β†’ Schedule removal           β”‚
β”‚ β€’ Flag at 0% for 4+ weeks β†’ Consider deletion            β”‚
β”‚ β€’ Create cleanup task when flag reaches 100%             β”‚
β”‚ β€’ Review flag inventory monthly                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Avoiding Tech Debt

FLAG HYGIENE:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ THE PROBLEM:                                                β”‚
β”‚ ────────────                                                β”‚
β”‚ Flags accumulate if not cleaned up                        β”‚
β”‚ Code becomes confusing with many branches                 β”‚
β”‚ "Which code path is actually running?"                    β”‚
β”‚                                                             β”‚
β”‚ PREVENTION:                                                 β”‚
β”‚ ───────────                                                 β”‚
β”‚                                                             β”‚
β”‚ EXPIRATION DATES:                                           β”‚
β”‚ Every flag has a planned removal date                     β”‚
β”‚ Set when creating flag                                     β”‚
β”‚ Task created for cleanup                                  β”‚
β”‚                                                             β”‚
β”‚ FLAG LIMITS:                                                β”‚
β”‚ Max 20 active flags per service                           β”‚
β”‚ Must remove one to add one (at limit)                    β”‚
β”‚                                                             β”‚
β”‚ REGULAR REVIEW:                                             β”‚
β”‚ Monthly flag inventory review                             β”‚
β”‚ "Which flags can we remove?"                              β”‚
β”‚                                                             β”‚
β”‚ ─────────────────────────────────────────────────────────── β”‚
β”‚                                                             β”‚
β”‚ CLEANUP TASK:                                               β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚ β”‚ TECH-045: Remove new-search flag                       β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ FLAG: new-search-experience                            β”‚β”‚
β”‚ β”‚ STATUS: 100% for 3 weeks                               β”‚β”‚
β”‚ β”‚ STABLE: Yes, all metrics normal                        β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ TASKS:                                                   β”‚β”‚
β”‚ β”‚ ☐ Remove feature flag checks from code                β”‚β”‚
β”‚ β”‚ ☐ Remove old code path                                 β”‚β”‚
β”‚ β”‚ ☐ Remove flag from configuration                      β”‚β”‚
β”‚ β”‚ ☐ Update tests                                         β”‚β”‚
β”‚ β”‚ ☐ Deploy and verify                                    β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ ESTIMATE: 2 points                                     β”‚β”‚
β”‚ β”‚ PRIORITY: Medium (tech debt)                           β”‚β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Rollback Procedures

Handling Issues

ROLLBACK PROCESS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ WHEN TO ROLLBACK:                                           β”‚
β”‚ ─────────────────                                           β”‚
β”‚ β€’ Error rate exceeds threshold                            β”‚
β”‚ β€’ Performance degradation                                 β”‚
β”‚ β€’ Critical user complaints                                β”‚
β”‚ β€’ Security issue discovered                               β”‚
β”‚                                                             β”‚
β”‚ HOW TO ROLLBACK:                                            β”‚
β”‚ ─────────────────                                           β”‚
β”‚ 1. Set flag to 0%                                         β”‚
β”‚ 2. Verify old behavior restored                           β”‚
β”‚ 3. Notify team                                             β”‚
β”‚ 4. Investigate issue                                       β”‚
β”‚                                                             β”‚
β”‚ ─────────────────────────────────────────────────────────── β”‚
β”‚                                                             β”‚
β”‚ ROLLBACK TASK:                                              β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚ β”‚ INCIDENT: New search causing timeout errors            β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ DETECTED: Jan 20, 2:15 PM                              β”‚β”‚
β”‚ β”‚ Error rate: 5% (threshold: 1%)                        β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ ACTION TAKEN:                                            β”‚β”‚
β”‚ β”‚ 2:17 PM - Flag set to 0%                              β”‚β”‚
β”‚ β”‚ 2:18 PM - Error rate returning to normal              β”‚β”‚
β”‚ β”‚ 2:20 PM - Confirmed all traffic on old path           β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ FOLLOW-UP:                                               β”‚β”‚
β”‚ β”‚ ☐ Root cause analysis                                  β”‚β”‚
β”‚ β”‚ ☐ Fix identified issue                                 β”‚β”‚
β”‚ β”‚ ☐ Add test to prevent regression                      β”‚β”‚
β”‚ β”‚ ☐ Re-plan rollout                                      β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ ROOT CAUSE:                                              β”‚β”‚
β”‚ β”‚ Database query not optimized for 10% load             β”‚β”‚
β”‚ β”‚ Need index before resuming rollout                     β”‚β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                             β”‚
β”‚ KEY: Rollback is NOT failure                              β”‚
β”‚ It's the system working as designed                       β”‚
β”‚ Better to catch issues early                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Related Solutions