The second after the goal
When a goal goes in during a Champions League night, an online sportsbook has to make four decisions about the same group of players within a few seconds, and each decision belongs to a different team.
- Trading suspends the next-goal market, recalculates liability across open positions and reopens it at new prices.
- Product shows thousands of customers a cash-out value for the new score. A stale value either gives away margin or gets declined at the moment the customer most wants to act.
- Fraud is watching twelve accounts that share a device and a card place the same bet on the reopened market.
- Safer gambling has a player who has deposited £4,800 net since last night and is about to deposit again. That deposit crosses the £5,000 rolling 24-hour line that triggers the first stage of the UK Gambling Commission's financial risk assessments.
In most operators those four decisions read from four different systems: a cache, a wallet database, a real-time analytics store and a warehouse that refreshes on a schedule. Each copy is right as of a slightly different moment, and operators have lived with that for years. The rest of this post covers why gambling reforms and higher taxes made that split more expensive in 2026, and what changes when all four decisions read one copy of the player.
What changed for EMEA operators in 2026
Most new player protection rules in the region require responsible gaming checks calculated over a window of time, and they have to run before a deposit or a bet is accepted.
Market
The rule
The query it needs
Financial risk checks, starting at £5,000 net deposits in 24 hours
Net deposits per player over rolling 24-hour and 90-day windows
Bonus wagering capped at 10x, with no promotions that mix betting and casino
Wagering progress and product mix per bonus
Germany
€1,000 monthly deposit limit across every licensed operator
The player's deposits across the whole market, before this one
Netherlands
Monthly deposit thresholds, lower for players under 24
Deposits this calendar month, by age band
Finland, from July 2027
Loss limits shared across operators
Losses per player across operators
EU, from July 2027
Anti-money laundering checks at €2,000 in stakes or winnings
Cumulative stakes and winnings per customer
AI Act ban on AI that exploits vulnerable players
The player's current harm markers, before an AI system acts
Operators are paying for these checks out of thinner margins. The UK nearly doubled online casino duty to 40% in April 2026, and online betting duty rises to 25% next April. The largest UK operators have already cut marketing and jobs to cover it, and Italy now charges €7 million for an online license.
The checks also have to stay out of the player's way. The UKGC expects its financial risk checks to clear automatically for nearly all players. In the Netherlands, where deposit limits tightened in October 2024, the regulator estimated that unlicensed sites out-earned licensed operators for the first time in the first half of 2025.
Operators launching in newer markets such as South Africa and the UAE face the same kind of calculations, because licenses there come with responsible gambling and anti-money laundering conditions.
The stack most operators run
The common blueprint has a nickname, the KFC stack: Kafka for the event stream, Flink for stream processing, and ClickHouse, Druid or Pinot for fast analytics. Around it sit Redis or Aerospike for hot state like odds and sessions, Postgres or MySQL for wallets, a warehouse for BI and finance, Elasticsearch for search and, more and more often, a vector database for AI. Third-party fraud and safer gambling vendors score events outside the core stack and sync their results back in.
It works. Large operators run versions of it today, and a well-tuned Flink job keeps the hot path within seconds of the event.
- Every rule runs against somebody's copy of the player. The rolling deposit total lives in a Flink aggregate, bonus wagering progress in the wallet database, AML history in the warehouse and the safer-gambling flag with the vendor. When a regulator asks why a player got an offer minutes after a flag, the answer means lining up timestamps from four systems.
- Each new threshold is a streaming change. Teams pre-aggregate in Flink because the analytics store can't join fast enough at query time, so a new window or threshold means a new job, new state and a new deployment. The UKGC's own 90-day threshold moved from £2,000 in its earlier design to £3,000 in July's decision, and a £5,000 first stage was added on top.
- The glue costs more at 40% duty. Six systems mean six bills, cache clusters sized for peak traffic and engineers who can be on call for Flink state during a cup final. That spend now sits in the same budget review as the marketing operators have already cut.
The agent that sent the free bet
A CRM agent is asked to re-engage players whose activity dropped this week. It reads player profiles from the warehouse, which refreshes every 15 minutes. Eleven minutes ago, the safer-gambling system flagged one of those players as showing strong indicators of harm. The flag sits in the vendor's store and hasn't reached the warehouse. The agent sends the player a free-bet offer.
Every system worked as designed. The warehouse was 11 minutes behind the vendor, and the agent acted inside those 11 minutes. UK license condition SR code 3.4.3 says operators "must prevent marketing and the take up of new bonus offers" where strong indicators of harm are identified, and must act on them "in a timely manner by implementing automated processes." An agent sending thousands of offers a day has no approval step to catch the mistake.
EU markets add the AI Act, whose ban on AI that exploits vulnerability has applied since February 2025. DLA Piper's guidance for the sector cites AI that adjusts bonus triggers when a player shows markers of harm, with fines of up to €35 million or 7% of global turnover.
Each offer also needs a fresh eligibility check, and when the context for that check sits in three systems, the agent pays to assemble it every time. In SingleStore's own testing, the same question answered from one joined context used about 62% fewer tokens (2,200 against 5,800) than agents orchestrated across three separate systems, with a better answer.
One engine, one copy of the player
SingleStore is one distributed SQL engine that does the jobs the assembly splits across six systems. A capable team could assemble the same capabilities themselves, and many have. With one engine, your team stops spending its week keeping six copies in sync.
Bets, game events, deposits and wallet movements land through built-in Pipelines from Kafka, CDC or object storage and are queryable within a second of the event while ingest continues. Transactions and analytics run against the same tables, which changes each of the four decisions from the opening:
- Trading and cash-out read exposure and cash-out values from the table the bets land in, instead of a cache that has to be kept in step.
- iGaming Fraud team runs one statement that joins behavioral similarity with shared devices and cards, because SQL, JSON, full-text and vector search sit in the same engine.
- Safer gambling reads the deposit that landed a moment ago. A 90-day window is a SQL query, and a new under-25 threshold is a WHERE clause with no streaming job behind it.
- CRM agents check eligibility against the same database the safer gambling flag is written to, so the next query sees the flag.
It speaks the MySQL wire protocol, so existing drivers and BI tools connect unchanged.
Collapse the stack - Diagram
Aura Analyst sits on top of the engine. A compliance lead can ask "which players received a promotion within an hour of a safer gambling flag this week?" and get an answer on live data, with the SQL it ran shown, role-based access enforced and an audit record of the data behind it. That record is what iGaming compliance needs when a regulator asks why a player received an offer.
The price feed from Sportradar, Genius or Kambi, the player account management platform and Kafka as the transport between them all stay in place, and the wallet should stay where it is for at least the first month.
Where this already runs
Live esports analytics is the closest public workload to a sportsbook: traffic jumps when a match starts and drops when it ends. Stream Hatchet, which tracks esports and streaming audiences for publishers and brands, replaced several purpose-built databases with SingleStore, made queries 10x faster and was in production within two months.
Card issuers have run the regulated half of this problem for years. One large US bank runs about 70 feature queries against live transactions on SingleStore inside 50 milliseconds of its one-second approval window, replacing an overnight batch that let fraud through until the next day. Areeba, a payments processor serving banks across the Middle East and Africa, runs fraud detection and AML monitoring on SingleStore across hundreds of millions of card authorizations. The UKGC's financial risk assessments already run on credit reference data, the same source a lender uses.
These companies are outside gambling. The esports platforms show SingleStore handling live-event concurrency, and the payments firms show it making decisions on live transactions inside a fixed latency budget.
Start with one workload
A platform migration can wait. Pick one decision that currently reads from a stale or disputed copy and run it side by side with your current path for two to four weeks, on your own data, with success criteria agreed up front. Good candidates for EMEA operators:
- A rolling 24-hour and 90-day net-deposit monitor, built before the UKGC sets a start date for stage one of financial risk assessments.
- Bonus wagering progress and product-mix checks under the 10x cap.
- The cash-out and exposure screen during peak in-play traffic.
- A check that suppresses CRM offers within a set window of any safer gambling flag, which is the free-bet scenario above.
Measure freshness from event to query, p99 latency at your real Saturday night concurrency, and cost projected at post-duty volumes. Keep the numbers whichever way they come out.












