There is a particular kind of quiet that happens about sixty seconds before a big on-sale. The team is watching dashboards. The infrastructure is warm. And somewhere out there, hundreds of thousands of people, and more than a few bots, are refreshing a page, waiting for the clock to hit zero.
For the ICC Champions Trophy 2025 at Dubai International Cricket Stadium, that moment came more than once. Five matches, an India run that set the region alight, and two knockout fixtures that turned demand into something close to a stampede. This is the story of how we kept it calm.
The wave we knew was coming
When a tournament like this goes on sale, demand does not arrive in a tidy line. It arrives all at once. The Final alone pulled close to 600,000 visitor sessions into the queue for the roughly 25,000 seats at the Dubai International Cricket Stadium. That is around twenty-four people in line for every single seat. Across the full tournament, around 100K tickets sold across five matches.
And the demand was lopsided in the way only cricket can be. The Pakistan versus India group match pulled tens of thousands of sessions straight to its page before anything else had loaded. The Final and the semi-final drove a second surge weeks later when the knockout tickets dropped. Two spikes, both enormous, both unforgiving of any system that was not ready.
That kind of pressure is exactly where things usually break: the page falls over, real fans get error screens, and the people who get through fastest are not fans at all.
The bot problem nobody likes to talk about
Marquee on-sales attract bots the way stadium lights attract moths. Automated scripts and bulk-buying tools show up to grab inventory in the first seconds, then resell it later at a markup. If you do nothing, a meaningful slice of your tickets never reaches a human being.
You cannot out-muscle that with more servers. You beat it with structure: make everyone wait their turn in a fair line, slow down the patterns that look automated, verify the people moving through checkout, and never let the same actor hoover up inventory faster than a person physically could.
How we fought back, on several fronts
We did not treat this as one switch to flip. Bots adapt, so the defense has to work on several fronts at once, and it has to hold while the infrastructure underneath is taking the heaviest traffic of the year. Both of those were on us.
Here is where we fought, and what we managed:
- The infrastructure itself. Before a single ticket sold, we sized and hardened the backend to absorb the surge, then kept tuning it live as each wave hit. We provisioned for the spike, isolated the on-sale path, and made sure capacity went to real buyers rather than being burned by automated traffic. A platform that buckles is its own kind of unfairness, so keeping it up under load was step one.
- A fair virtual queue. Everyone entered a randomized waiting line the moment the clock hit zero. The store only ever admitted as many people as it could genuinely serve, which protected the site and quietly removed the advantage of hammering refresh.
- Bot detection and blocking. We watched traffic for the tells of automation, request bursts, repeated fingerprints, scripted behavior, and throttled or blocked them before they reached checkout. This ran continuously through every on-sale, not as a one-time filter, because the scripts kept probing for a way in.
- Verification and purchase limits. Real accounts, sensible per-buyer caps, and checks at checkout so no single actor could sweep a stand and flip it later.
- Real-time inventory and access control. One source of truth across web and box office so nothing oversold or leaked, and gate scanning that carried the same integrity through to match day.
None of it was a special build for the tournament. It is the same backend that runs every tixity on-sale, managed hard for the moment. The Champions Trophy just turned the dial all the way up.
What the numbers looked like
The waiting room did its job. Of the close to 600,000 sessions that queued for the Final, only the share the store could actually serve was let through at a time, with an average wait of around 48 minutes at the busiest moments. Painful for a fan refreshing their phone, sure, but the alternative, a crashed site and a lottery won by bots, is far worse.
On the other side of it:
- around 100K tickets sold across the five matches.
- Knockouts at near-capacity, with the Final reaching 90.4% attendance.
- More than 100,000 gate scans processed across the run, entry and re-entry included.
Tickets in real hands. Stands that filled up. A platform that never blinked.
The takeaway
Big on-sales are not really a traffic problem. They are a fairness problem. The win is not surviving the spike, it is making sure that when the dust settles, the seats went to fans and not to scripts.
For the ICC Champions Trophy 2025, that came down to having the queue, the bot defenses, the checkout, and the gate all working as one system rather than four. No bolt-ons, no finger-crossing.
If you want the full picture, read the ICC Champions Trophy 2025 case study. Or explore how the same stack works for sports and stadiums, the white-label platform, and Venue 360.
