Gaming Platform
Multi-brand gaming platform architecture
- Industry
- Gaming · Platform architecture
- Status
- Foundation phase
- Our role
- Architecture and engineering
- Services
- Software Engineering, Web & Product Engineering
Overview
The foundation for a multi-product gaming platform (sportsbook, casino aggregation, instant games, wallet, payments, bonuses, VIP, affiliates and an operator back office) as one configurable, multi-brand, multi-jurisdiction codebase.
The problem
- A bet touches wallet, odds, bonus and risk at the same time; getting money wrong once is unacceptable.
- Operators need several brands and jurisdictions without forking the code.
The approach
A modular monolith with strict domain boundaries: a bet is one database transaction, not a distributed saga, while modules stay isolated enough to extract later. Correctness rules are enforced by tests and lint rules, not by good intentions.
System architecture
01
Platform API
Fastify 5; one Zod schema is validator, type and OpenAPI source
02
Ledger
Immutable double-entry ledger in PostgreSQL; balances are derived, never mutated
03
Realtime + jobs
Redis 8 pub/sub for live odds; BullMQ jobs with retries
04
Player app
Next.js 16, dark-first and mobile-first, brand-driven tokens
05
Config
Brand config, currency registry and environment validation per deployment
Technology
- Fastify 5
- TypeScript
- PostgreSQL 17
- Drizzle
- Redis 8
- BullMQ
- Next.js 16
- React 19
- Tailwind v4
- Vitest
Key features
- Money as bigint minor units with an explicit currency; floats on money are a lint error
- Every financial operation idempotent, enforced by a unique index
- Compliance server-side and deny-by-default
- External callbacks signature-verified, replay-protected and idempotent
- Structured logging with mandatory redaction