Fairness Rotation¶
Procedure — instantiates Queue Aging and Starvation Prevention
Cycles service among classes, queues, or groups on a guaranteed schedule so no one class can monopolize capacity, protecting whole categories from starvation.
Fairness Rotation prevents starvation at the level of the group, not the individual item. Capacity is divided into recurring turns and cycled among classes — regions, tenants, case types, customer segments — on a guaranteed schedule, so each class receives its share every cycle no matter how loud or heavily-loaded the others are. The defining idea is that the unit of protection is the category: rotation is completely indifferent to how old any particular item is, and instead asks whether each class has had its guaranteed slice. This is the right tool when starvation is systemic — when an entire region, queue, or segment is being structurally under-served — rather than when scattered individual items are aging out. A periodic audit compares realized shares against the policy and corrects drift.
Example¶
A city's pothole-repair crews had always been dispatched to wherever complaint volume was highest, which meant busy commercial arterials were resurfaced constantly while a few quiet residential districts went years without a crew — the classic monopolization tail. The public-works office adopts Fairness Rotation: the repair calendar is carved into a cycle in which every district is guaranteed at least one crew-day per cycle, with high-need districts weighted to two, before any district can claim a second discretionary day. A quiet district that would never win on complaint volume now gets its guaranteed crew-day on schedule. At the end of each cycle, a supervisor audits the realized crew-days per district against the weights and, if a district was shorted because a job ran long, credits it an extra day next cycle. No single district — however loud — can consume the whole crew.
How it works¶
- Define the classes and the policy. Decide which categories are protected and what "fair" means for them — equal turns, weighted shares, or a guaranteed minimum per cycle.
- Assign shares and rotate. Allocate each class a proportion of capacity and cycle through them (round-robin or weighted round-robin), rather than always serving whoever ranks highest.
- Handle empty and overrun turns. Skip a class with no waiting work, but carry a deficit credit when a class is shorted, so a class that was passed over is made whole next cycle.
- Audit realized shares. Periodically compare what each class actually received against its policy share and remedy the gap.
Tuning parameters¶
- Class definition — how coarse or fine the protected categories are. Too coarse and starvation hides inside a class; too fine and rotation overhead explodes.
- Share weights — the proportion each class is guaranteed. Heavier weights protect a needy class but pull capacity from others.
- Rotation granularity — whether turns are per-item, per-time-slice, or per-batch; finer granularity smooths fairness but costs switching overhead.
- Deficit carryover — whether a shorted class accrues credit toward future cycles, and how far that credit can accumulate before it distorts the schedule.
- Audit cadence — how often realized shares are checked against policy and corrected.
When it helps, and when it misleads¶
Its strength is protecting the powerless category — the low-volume region, the small tenant, the unfashionable case type — that a purely demand- or priority-driven queue would starve indefinitely. It is the natural instantiation of weighted fair queuing thinking applied to human and organizational service.[n1]
Its honest costs are two. First, rotation is short-run inefficient: guaranteeing a quiet class its turn means sometimes rotating capacity away from the genuinely most urgent work of the moment. Second, and more subtly, fair-across-classes is not fair-within-class: a class can receive its full guaranteed share while the oldest individual items inside it still rot, because rotation never looks at item age. The guarding discipline is to combine class rotation with a within-class age rule (so each class's turn serves its oldest work first), and to keep an urgency escape hatch so rotation never blocks a true emergency.
How it implements the components¶
Fairness Rotation realizes the class-level face of the archetype — the machinery that protects categories rather than items:
fairness_policy— the explicit definition of what unacceptable waiting means here: no class monopolized, each guaranteed its share every cycle.class_level_service_share— the guaranteed proportion or turn each class receives, enforced by the rotation schedule.audit_and_remedy_loop— the periodic check of realized shares against policy, with deficit credits that correct any class that was shorted.
It reads no age_threshold and applies no priority_aging_rule boost to any individual item — those belong to Wait-Time-Based Priority Boost, its nearest twin, which promotes a single item when its own wait crosses a line; rotation guarantees a class its slice whether or not any of its items has aged at all.
Related¶
- Instantiates: Queue Aging and Starvation Prevention — the class-level, rotation-based realization of anti-starvation.
- Sibling mechanisms: Priority Aging · Wait-Time-Based Priority Boost · Maximum Wait Guarantee · SLA Escalation · Deadline Queue · Oldest-Item Sweep · Aging Dashboard
Editorial Notes¶
Form Classification¶
Form family: Control, Automation & Runtime
Rationale: Fairness Rotation operates as a live operational control that automatically routes, enforces, adapts, or responds during execution because it cycles service among classes, queues, or groups on a guaranteed schedule so no one class can monopolize capacity, protecting whole categories from starvation.
Independent corroboration: The frozen evidence defines Fairness Rotation as 'Cycles service among classes, queues, or groups on a guaranteed schedule so no one class can monopolize capacity, protecting whole categories from starvation', so its operative form is Control, Automation & Runtime.
Review outcome: Independent reviewer agreement; high confidence.
Origin Attribution¶
Primary origin: Operations Research
Origin pattern: Convergent development
Present-day reach: Multi-domain
Rationale: Round-robin and weighted-fair service disciplines that prevent queue starvation are canonical scheduling methods.
Related originating lineages:
- Law & Governance — Procedural equality and rotation of scarce opportunities independently provide normative allocation traditions.
- Public Administration & Policy — Rotational allocation and equitable service guarantees independently shape use across claimant groups.
Review resolution: Both reviewers agree that operations_research is primary. I retain law_governance, public_administration_policy only as formative origin lineages; convergent is appropriate because the same operational pattern arose through parallel professional lineages. Reach is multi_domain because the structure transfers across several fields but is not a near-universal human pattern, an applicability judgment kept separate from provenance. Encyclopedia synthesis is true because the exact generalized artifact is an encyclopedia-authored combination or refinement. No unresolved historical ambiguity remains after reconciling the secondary fields.
Encyclopedia synthesis: The exact catalogued form synthesizes established practice rather than reproducing a single standard historical label.
Review outcome: Reconciled after independent review; high confidence.
Notes¶
[n1] Weighted fair queuing is a scheduling discipline that allocates each flow a guaranteed share of a shared resource in proportion to a weight, so no single flow can crowd the others out. Fairness Rotation is the organizational analog applied to classes of work. ↩