01
What it is
PUBG PRO is a tournament ecosystem around a single game, assembled as a set of independent services. Every game mechanic is its own microservice with its own database, its own tests and its own right to fail: if the wheel of fortune goes down, tournaments keep running.
The hard part is not the bracket — it is money and concurrency.
Players hit “claim reward” five times in a row, tasks complete in parallel, and participant caps run out exactly when eight people press the button. Every one of those mechanics is proven with a concurrency test: eight parallel players for two slots — exactly two winners, six clean rejections.
02
capabilities
What it does
01
Tournaments and lobbies
Bracket creation, team registration with a mandatory logo, automatic phase transitions, lobby delivery to participants, PPR scoring with a per-player average-stats bonus.
02
Tasks and quests
Six kinds: manual, link, referral, Discord and Telegram joins, account linking, and event-driven. Two-phase delivery — complete, then claim — so a reward never evaporates on a network error.
03
Wheel of fortune and PvP
Fully admin-configurable: sectors, odds, reward types. Internal PUBG balance, extra spins, battle-pass days.
04
TON deposits
A unique QR and memo per deposit, a transaction watcher, credit to internal balance. Premium can be bought from balance with an automatic swap when the currency is short.
05
Self-healing Discord
Channel and role sync: if a channel is deleted by hand, the next run restores the structure without touching finished tournaments.
06
Drop-spot reservations
Players book landing spots on the map: four visibility gates, Pro-subscription preferences, and de-clustering so markers stay readable.
03
architecture
How it works
01
Registration and account linking
02
Tournaments, lobbies, matches
03
Tasks, wheel, PvP
04
Balance, TON deposits, payouts
05
Discord and Telegram perimeter
Under the hood
- 14 NestJS microservices: auth, tournaments, teams, betting, pvp, tasks, wheel, daily-matches, ws-gateway, admin and more.
- Kafka as the event bus: a referral completes, a player logs in, a match ends — subscribers react on their own.
- Idempotency enforced in the database via unique keys on the credit ledger, not a check-then-insert.
- Cap races resolved with a guarded conditional UPDATE instead of read-modify-write.
- Next.js frontend: player cabinet, RBAC-driven admin console, recharts statistics.
- Docker Compose in production, nginx at the edge, a dedicated postfix for mail.
04
scale
Numbers
14
microservices in production
6
task types
39
unit tests in tasks-svc alone
TON
deposit network
