FIFO Queue¶
Ordering policy — instantiates Queue Discipline Design
Serves waiting items in the exact order they arrived, so position depends only on arrival time and nothing about the item itself.
FIFO Queue — first-in, first-out — orders the waiting set by arrival time and by nothing else. No attribute of an item changes its place: not urgency, not size, not who is asking, not how much they are willing to pay. The only fact that determines when you are served is when you joined the line. That single-mindedness is the whole point. Because the sort key is a witnessed, monotonic event — your moment of arrival — the order is trivially legible, hard to argue with, and hard to game. FIFO treats "you were here first" as the definition of fair, and refuses to look at anything else about the item.
Example¶
It is Saturday morning at a busy neighborhood bakery. A ticket dispenser by the door prints numbers; a display above the counter reads Now serving 39. A customer pulls #47 and can see exactly how many people are ahead of her. When #40 through #46 have been served, she is next — full stop. The retiree who wants a single baguette pulled #52 and will wait behind a caterer with #48 who is ordering three custom cakes, because #48 arrived first. Even a regular who knows the owner takes a ticket like everyone else. No one has to adjudicate whose need is greater, because the rule never asks: the order is the arrival order, the position is visible, and disputes about "who's next" simply do not arise. The cost is equally plain — a one-item order can wait a long time behind a large one, because FIFO is blind to how long each will take.
How it works¶
- One shared line, one sort key. Items enqueue at the tail and are served from the head; the sole state is arrival order.
- No re-ranking, ever. Once an item is in the line, nothing it does and nothing that arrives later moves it; the line only advances.
- Position is a public artifact. Because rank equals arrival order, each waiter can locate itself exactly, which is what makes the discipline feel legitimate.
Tuning parameters¶
- Arrival timestamp point — when the clock starts (join the physical line, take a ticket, submit a request). This is the only judgment call FIFO makes, and it quietly decides who counts as "earlier."
- Single line vs. parallel servers — one shared queue feeding several servers (the "serpentine" line) versus a line per server. A single feeder line cuts the variance of wait times without touching the FIFO rule.
- Balk / renege handling — what happens to the order when someone abandons the line: their slot simply collapses and everyone behind advances.
- Batch size — serving one item at a time versus a fixed batch, trading a little strict-order purity for throughput.
When it helps, and when it misleads¶
Its strength is legitimacy at near-zero cost: FIFO is cheap to run, obvious to explain, and resistant to manipulation because arrival order in a witnessed line is difficult to fake. It is the right rule whenever items are genuinely comparable and "who arrived first" is an honest proxy for fairness.
Its central failure is that it is blind to urgency and to duration. A person having a heart attack waits behind a sprained ankle; a five-second task waits behind an hour-long one. It also quietly rewards whoever can arrive early — people with free time, faster connections, or physical proximity — so "first come" can encode an unequal ability to come first. And reordering the line would not even shorten the average wait: for a work-conserving queue the mean time in system is fixed by arrival rate and service rate, so FIFO merely spreads waiting evenly rather than reducing it.[n1] The guarding discipline is to reserve FIFO for comparable work and to put a triage or priority step above it wherever the harm of waiting differs across items.
How it implements the components¶
FIFO fills only the ordering-and-fairness core of the archetype — the smallest honest subset:
service_order_rule— the rule is exactly "serve the smallest arrival timestamp first," with no other input.fairness_policy— FIFO's chosen fairness concept is first-come-first-served: arrival order is the declared equity principle, not a side effect.
It reads nothing about the item beyond arrival time, so it implements no prioritization_criteria (that is Priority Queue), no class_or_actor_partition (Round-Robin Queue), and no service_time_estimate (Shortest Job First). Its nearest twin is Round-Robin Queue — also a neutral, urgency-blind rule — but Round-Robin owns class_or_actor_partition and cycles turns among actors, whereas FIFO keeps a single shared line ordered strictly by arrival.
Related¶
- Instantiates: Queue Discipline Design — FIFO is the baseline discipline that makes arrival order the explicit service rule.
- Sibling mechanisms: Priority Queue · Round-Robin Queue · Shortest Job First · Aging Queue · Appointment Queue · Deadline Queue · Weighted Fair Queue
Editorial Notes¶
Form Classification¶
Form family: Control, Automation & Runtime
Rationale: FIFO Queue operates as a live operational control that automatically routes, enforces, adapts, or responds during execution because it serves waiting items in the exact order they arrived, so position depends only on arrival time and nothing about the item itself.
Independent corroboration: The frozen evidence defines FIFO Queue as 'Serves waiting items in the exact order they arrived, so position depends only on arrival time and nothing about the item itself', 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: Universal
Rationale: First-in-first-out is a canonical queue discipline in queueing theory and operations research.
Related originating lineages:
- Computer Science & Software Engineering — Computer systems independently standardized FIFO queues as a fundamental data structure and scheduling rule.
Review outcome: Independent reviewer agreement; high confidence.
Notes¶
[n1] Little's Law — for a stable queue the average number of items in the system equals the arrival rate times the average time in the system (L = λW). A corollary is that a work-conserving discipline cannot change the mean wait, only how that wait is distributed across items; FIFO distributes it in arrival order. ↩