Nima uchun kazinolar modulli arxitekturaga o’tadi
Nima uchun kazino modulligi
Tarixiy monolit o’sishni sekinlashtiradi: har bir o’zgarish butun tizimni chiqaradi, provayderlar va PSP integratsiyalari SLOni, komplayens-apdeytlarni butun kod bo’ylab uradi. Modulli arxitektura (domain-driven + kontrakt API + hodisalar) quyidagilarga imkon beradi:- Fichlarni tezda chiqarish va provayderlarni «hamma bilan» muvofiqlashtirmasdan ulash;
- Tanlab kattalashtirish (live-video kassadan alohida, hamyonni o’yin katalogidan alohida);
- Xatolarni izolyatsiya qilish (xato hamyonni promoga tushirmaydi);
- Litsenziyalarga rioya qilish (domen chegaralarida logografiya/versiyalar/siyosatlar);
- Aniq shartnomalar, qayta foydalanish va avtomatlashtirish orqali TCOni kamaytirish.
Domen xaritasi (ajratish misoli)
Wallet/Ledger - pul, valyuta xedjlari, bonus balanslari, PITR, audit.
Cashier/Payments - PSP, on-rampa/off-rampa, KYT, idempotent vebxuklari.
Gaming Bridge - provayderlar adapterlari, normallashtirish round/bet.
Catalog/Lobby - o’yinlar, provayderlar, fichering va namoyish qoidalari.
Promo/Bonus - aksiyalar, vaucherlar, wager qoidalari.
KYC/AML/RG - shaxsni tekshirish, sanksiyalar/PER, limitlar va o’z-o’zini istisno qilish.
Experience - frontend, CDN, i18n, A/B, Telegram WebApp.
Telemetry/Analytics - voqealar, vitrinalar, ML/AI.
Compliance & Audit - MGA/UKGC hisobotlari, WORM arxivi.
Modul arxitekturasi tamoyillari
1. DDD chegaralari (bounded context). Ma’lumotlar va mantiqni aniq bilish.
2. API - birinchi + voqealar. OpenAPI/AsyncAPI, JSON-Schema, kontrakt testlari.
3. Version va moslik.’v1 → v1. 1 → v2` (expand→migrate→contract).
4. Idempotency & Exactly-once-intent. So’rov kalitlari, voqealarni duplikatsiya qilish.
5. Andoza xavfsizlik. mTLS, HMAC-imzolar, qisqa JWT, RBAC/ABAC.
6. Mustaqil relizlar. Kanar/blue-green deploy, migratsiya «ikki imzo» bilan taqiqlanadi.
7. Kuzatish darajasi. ’TraceId’ orqali, modul uchun SLO metrikasi.
8. Ficha bayroqlari. Trafik/geo/foydalanuvchi segmentlari, xavfsiz orqaga qaytish.
Integratsiya qatlami: provayderlar va PSPni qanday ulash kerak
Adapter/Bridge-pattern: har bir o’yin/to’lov provayderi - platformaning yagona kontraktiga ega plagin.
O’yinlar: normallashtirish’roundId/betId/status’, mapping xatolari, kesh limitlari.
To’lovlar: yagona interfeys’authorize/capture/refund/payout’, idempotentlik bilan vebxuklar.
O’chirish: nosoz adapter boshqalarga ta’sir qilmasdan maintenance-ga o’tkaziladi.
Shartnoma namunasi (OpenAPI fragmenti):yaml post /wallet/debit:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DebitRequest@v1'
responses:
'200': { $ref: '#/components/schemas/DebitResult@v1' }
'409': { description: IDEMPOTENT_REPLAY }
«Qon aylanish tizimi» kabi voqealar
Shina (Kafka/NATS) → voqealar:- `bet. placed`, `round. settled`, `payout. requested/approved`, `kyc. verified/failed`, `rg. limit_set`, `bonus. issued/consumed`, `cashier. webhook. received`, `wallet. hold/release`, `alert. slo_breach`.
- Voqealar oʻtmishni bekor qilmaydi; tuzatishlar kiritish - alohida kompensatsiya hodisalari bilan amalga oshiriladi.
- Har bir modul faqat o’zining boshlang’ich voqealarini, hosilalarini yangi mavzular sifatida yozadi.
Maʼlumotlar: qatlamlar va muvofiqlik
OLTP modulga: Postgres/MySQL/KeyDB - izolyatsiya qilingan tranzaksiyalar.
OLAP/vitrinalar: ClickHouse/BigQuery hodisalardan iborat; OLTP va tahlilni aralashtirmaymiz.
Feature Store/ML: OLTPdan mustaqil fich va TTL versiyali qatlam.
Muvofiqlik: modullar o’rtasida strategik eventual, pul uchun esa - chegaralardagi mahalliy ACID + idempotent harakatlar.
Deploy va masshtablash
Konteynerlar (Docker/K8s): modul bo’yicha avtoskeyl (wallet - CPU/IO; live-video - tarmoq; bridge — RPS).
Perimetri izolyatsiyasi: tarmoq siyosati, modulga alohida sirlar/kalitlar, turli xil PII/pul/telemetriya omborlari.
Trafik-sheyping: ficha-bayroqlar, kanareyka ulushi, mintaqaviy yo’nalishlar.
DR/HA: Multi-AZ; pul uchun aktiv-passiv, o’qish/media uchun aktiv-aktiv.
Komplayens modullarga «tikiladi»
KYC/AML/RG - siyosatchilar va yechimlar jurnali (’policyVer’) bo’lgan o’z moduli.
Audit/WORM - pul/raund/to’lov hodisalarining o’zgarmas ombori.
Hisobot - yurisdiksiyalar bo’yicha eksport (MGA/UKGC), to’liq/o’z vaqtida SLA.
Oqim namunasi
Stavka → hisob-kitob → to’lov
1.’gaming-bridge’yuboradi’bet. placed` (idempotent).
2.’wallet’hold’qiladi va’wallet’ni nashr etadi. hold`.
3. «gaming-bridge» provayder →’round natijasini oladi. settled`.
4.’wallet’deb hisoblaydi’settle’(release/payout) →’wallet. settled`.
5.’promo’hodisalarni iste’mol qiladi va →’bonus bonusini hisoblaydi. issued`.
Kassa (depozit)
1.’cashier’payment’ni yaratadi. intent` с `Idempotency-Key`.
2. PSP vebxukni chaqiradi →’cashier. webhook. received`.
3. `wallet. credit’fakt bo’yicha → tahlilchi va RG uchun voqea.
Bekorsiz oʻzgarishlar (expand → migrate → contract)
1. Expand:’v1’ga maydon/endpoint qoʻshilgan. 1’, eski mijozlar buzilmaydi.
2. Migrate: Iste’molchilar yangi narsalarni o’qiydilar, ikkala versiyada ham yozadilar (dual-write faqat pul uchun emas).
3. Contract: EOL’v1 deb eʼlon qilindi. 0’, reja bo’yicha N haftadan keyin olib tashlandi.
Platforma muhandisligi
Golden Paths: modullar shablonlari (repo-askeleon, CI/CD, alertlar, SLO, sirlar).
Kontrakt testlari: Pact/AsyncAPI tests v CI; soxta provayderlar bilan integratsiya muhiti.
Services katalogi (Backstage): egasi kim, SLA, API versiyasi, rukbuk hodisasi.
Modullik muvaffaqiyati metrikasi
Lead time g’oyadan produsergacha ↓ X marta.
Modul bo’yicha relizlar chastotasi ↑ (bir kunda/haftada), change-fail rate ↓.
MTTR hodisalar bo’yicha ↓ (izolyatsiya tufayli).
Infra cost/GGR barqaror yoki ↓ trafik ko’payganda (saylov skeyli).
Provayder/PSP integratsiyasi vaqti (brifingdan prodgacha) ↓.
Anti-patternlar
«Mikroservislar uchun mikroservislar». Ma’lumotlarning chegarasi aniq bo’lmasa, bog’liqlik va murakkablik o’sadi.
Modullar orasidagi umumiy DB/sxemalar. Izolyatsiya va mustaqil relizlarni o’ldiradi.
Versiya/shartnomasiz voqealar. Iste’molchilarni «jimgina» sindirishadi.
Pul uchun dual-write. Kelishmovchilik xavfi faqat bitta yozuvchi orqali amalga oshiriladigan idempotent qadamlardir.
Global yordamchi qatlam. U yashirin monolitga aylanadi.
Fich bayroqlari va kill-switch yoʻq. Har qanday xato birdaniga hammaga ta’sir qiladi.
OLTP/OLAP aralashmasi. Hisobotlar stavkalarni/hamyonni sekinlashtiradi.
Kuzatilmagan. SLOni oʻlchash va hodisalarni bogʻlash uchun hech narsa yoʻq.
Modul arxitekturasiga o’tish chek-varaqasi
Strategiya va domenlar
- Modul boʻyicha bounded contexts, egalari va KPI aniqlangan.
- O’zaro ta’sir xaritasi: API/hodisalar, tanqidiylik va SLO.
Kontraktlar va xavfsizlik
- OpenAPI/AsyncAPI + JSON-Schema; versiya va hayot sikli.
- mTLS/HMAC, chegaralarda qisqa JWT, RBAC/ABAC.
Maʼlumotlar
- Ajratilgan OLTP; hodisalar - OLAP uchun manba.
- API/vebxuklarda Idempotency, xabarlarning deduplikatsiyasi.
CI/CD va relizlar
- Kanareyka/blue-green, ficha bayroqlari, modul bo’yicha avtoskeyl.
- CIda kontrakt testlari; soxta provayderlar bilan chorshanba.
Kuzatish
- Logi/metrika/treys s’traceId’; SLO-dashbordlar.
- Biznes-metriklar bo’yicha alertlar (VOID, reject, payout lag).
Komplayens
- WORM-pul/tur arxivi, tartibga solish hisobotini eksport qilish.
- KYC/AML/RG alohida modul sifatida echimlar jurnali bilan.
Mini-misollar
’round’ hodisasi. settled@v1`:json
{
"event":"round. settled", "v":"1", "roundId":"R-2025-10-17-evo-23", "gameId":"evo_blackjack_23", "bets":[{"betId":"b_92f","playerId":"p_1","stake":"10. 00","payout":"15. 00","outcome":"WIN"}], "ts":"2025-10-17T14:23:13. 120Z", "traceId":"tr_5f1"
}
Idempotent hamyon:
http
POST /wallet/settle
X-Idempotency-Key: 9a7f-2b1c
{
"roundId":"R-2025-10-17-evo-23", "operations":[{"playerId":"p_1","delta":"5. 00","currency":"EUR"}]
}
Modulli arxitektura kazino platformasini «mo’rt kombayn» dan ishonchli domenlar kompozitsiyasiga aylantiradi: har biri o’z shartnomalari, ma’lumotlari va SLO bilan. Bu integratsiya va relizlarni tezlashtiradi, saylovlarni kengaytiradi, komplayensni soddalashtiradi va hodisalar xavfini kamaytiradi. Domen chegaralari, kontraktlar va hodisalarni ajratish bilan boshlang, xavfsizlik va kuzatuvni «to’qib o’ting» - va siz mahsulotni sekinlashtirmasdan, u bilan birga o’sadigan platformani olasiz.