Build a useful investigation brief
Build a fixed workload mix
Prepare one eligible low-priority job and a stream of short favored jobs with known ready times. Record expected service opportunities and keep the worker count fixed. Add a quiet control run where no favored arrival competes for the next slot.
Trace service opportunities
Capture worker-free times, eligible queue contents, selection result, claim, and completion for each interval. Mark when the old job was present but bypassed. If every interval is occupied, record capacity evidence instead of attributing the wait to fairness logic.
Test one fairness boundary
Exercise a bounded aging rule, reserved service share, or class partition in a controlled environment and compare maximum wait with the original mix. Keep favored completion behavior visible. A change that serves the old job by blocking all urgent work is not a complete result.
What to carry forward
Deliver the arrival mix, worker capacity, missed service opportunities, selector traces, and bounded fairness comparison. State whether starvation is reproduced and under which load. Name the smallest policy boundary to review, with any capacity or eligibility limitation kept explicit.
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