First in, first out. Join the back, leave the front. The stack's mirror image.
Green = front (served next), blue = back (just arrived). Out in the same order as in.
list.pop(0) is O(n) → O(n²) to drain. 24× slower than deque at 32000.
Use collections.deque + popleft, never list.pop(0).
FIFO gives you fair, arrival-order service in O(1).
Next: a fixed-size queue that reuses its space — the ring buffer.