The venue gate is a distributed system
2 min read#product #no-code #operations
For three years I worked the gate at Die Bosveld, an events venue in Pretoria — first checking tickets by hand, then helping replace the system I was operating. We built the replacement on Bubble with Gerhard van Staden; my job was knowing exactly what the gate needed, because I was the gate. Standing there is the best requirements workshop I've ever attended: every design flaw becomes a queue of impatient people looking directly at you.
Two marshals, one ticket
Busy days run multiple entry points, and sooner or later one ticket gets presented at two gates within seconds. Sometimes it's fraud; mostly it's a family that split up in the parking lot. Either way, if the system checks a ticket's status and then updates it as two separate steps, two simultaneous scans can both see "valid" and both admit — the same read-then-write race that bites databases, except the symptom is two marshals arguing at different gates.
The rule we specified: every scan gets recorded with a verdict against the order's full scan history, and the history is what decides — not a status flag someone flips. A second scan of a used ticket bounces no matter which gate catches it, and the record of both attempts survives for the inevitable dispute at the office on Monday.
Families don't arrive as a unit
A day pass covers, say, four adults and six children — and families do not walk in as an atomic transaction. Dad enters with two kids; mom follows twenty minutes later with the rest. So the gate tracks what remains on a pass per visitor type and admits partial groups across multiple taps, rejecting only what exceeds the allowance.
That rule didn't come from a spec document. It came from watching marshals wave families through when the software said no — because software that fights common sense loses, and then your attendance data is fiction. If the people operating your system are bypassing it, the bug is yours.
Fallbacks are the feature
Check-in runs on ordinary phones: QR codes read by camera, NFC bracelets tapped against the phone, and customers can program their own NFC tag from their ticket page. Every one of those has a failure mode — old phones without NFC, cracked cameras, glare on a screen at noon — so every path has a fallback, down to "copy the link." At a gate, the fallback isn't an edge case; it's Saturday.
What this taught me
Operate the thing you help build, even briefly. The scan-history rule, the partial-family rule, the fallback chains — none of them are visible from a desk. They're visible from the gate, at 09:00, when the queue is forty people deep. The spec I carry into everything I've built since is three years of Saturdays.
The full case study, numbers included: Die Bosveld Ticketing.