Category-to-team routing with least-loaded assignment, without a queue server in sight.
Ticket routing sounds like a problem that wants a message broker. For most operators it does not. The volume is modest; the latency that matters is human, not machine.
Our router resolves a category to an assignment group, then picks the least-loaded available agent in that group, all inside the request that created the ticket. No worker, no eventual consistency, no "your ticket is being assigned" limbo.
The trick is keeping the load counts cheap to read. A single indexed query against open tickets per agent is fast enough that the whole decision lands in under 80 milliseconds — and it is correct the instant the ticket is saved.
Field-tested notes on running infrastructure, monthly. No hype.