Aglet

Prioritize queue fairness drift by class impact

Fairness drift deserves attention when one class loses practical access to workers while another consumes capacity, even if aggregate completion remains steady. Prioritize the class-specific consequence and persistence. A short-lived share change during an arrival burst should be weighed differently from a class that disappears across normal intervals.

Decide where the work belongs

  1. Name the class consequence

    For each affected class, record the oldest waiting job, blocked outcome, and any user or operational dependency. Compare its wait with the service contract. Keep proportional share separate from correctness failures; both matter, but they require different queue decisions.

  2. Check persistence and reach

    Compare class shares across multiple bounded intervals and workload mixes. Note whether drift follows a new class, queue, worker reservation, or arrival burst. A repeated loss under ordinary arrivals is stronger priority evidence than one skewed interval.

  3. Choose a contained review

    Select immediate investigation, a class-allocation experiment, or missing-evidence collection. Name the class and interval that will be used for the next check. Do not rebalance globally before verifying that the observed share reflects eligible work and not an empty class.

What to carry forward

Queue the work with affected class, oldest wait, persistence, blocked consequence, and allocation evidence. Escalate when eligible work repeatedly receives no service while another class claims available slots. Otherwise schedule a per-class trace and preserve the arrival mix that revealed the drift.

Technical background: Rails guides.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow