Adjust queue weights to separate user-facing vs internal operations
## Problem Some queues currently have weights that don't accurately reflect their impact on customer experience. Specifically: **Under-prioritized (customer-facing, should be higher)**: - `expiration` (weight 3): Trial expirations are time-sensitive and directly impact customer experience. When a trial expires, customers expect immediate changes to their access. **Over-prioritized (internal operations, could be lower)**: - `zuora_product_sync` (weight 3): Product catalog synchronization is important for data consistency but doesn't directly block customer operations. It runs daily and doesn't need to compete with customer-facing jobs. ## Proposal Adjust weights to better reflect customer impact: ### Increase Priority for Customer-Facing Operations **`expiration` queue: 3 → 7-8** - Handles trial expiration processing via `ExpireOrderTrialJob` - Time-sensitive: Customers expect trials to expire at the specified time - Directly impacts customer access and experience - Should be processed quickly to maintain trust and meet expectations ### Decrease Priority for Internal Sync Operations **`zuora_product_sync` queue: 3 → 4-5** - Handles `Zuora::SyncProductCatalogJob` (runs daily at midnight) - Internal data synchronization, not customer-blocking - Can tolerate some delay without customer impact - Should not compete with customer-facing provisioning or expiration jobs ## Additional Considerations While making these changes, we should also review: 1. **`reconciliations` queue (weight 3)**: Contains both customer-facing notifications and internal processing. Consider if this needs further splitting. 2. **`auto_renewals` queue (weight 3)**: Revenue-critical operations that might warrant higher priority (weight 6-7). 3. **`workato` queue (weight 3)**: Lead creation workflows - assess if these are customer-blocking or can be slightly lower priority. ## Implementation Steps 1. Update `config/sidekiq.yml`: ```yaml :queues: # ... other queues ... - [expiration, 7] # increased from 3 # ... other queues ... - [zuora_product_sync, 4] # decreased from 3 ``` 2. Monitor queue metrics before and after the change: - Queue depth - Job latency (time from enqueue to execution) - Job duration - Customer-reported issues related to trial expirations 3. Validate in staging environment first 4. Document the rationale for these weights ## Benefits - Trial expirations processed more reliably and quickly - Better customer experience during time-sensitive operations - Internal sync operations don't compete with customer-facing jobs - More accurate reflection of business priorities in queue configuration ## Related - Parent epic: gitlab-org&19587
issue