Kumarhaneler neden modüler mimariye geçiyor
Neden casino modülerliği
Tarihsel monolit büyümeyi yavaşlatır: her değişiklik tüm sistemin serbest bırakılmasını, sağlayıcıların ve PSP'nin SLO'lara entegrasyonunu, uyumluluk güncellemelerini - kod boyunca çeker. Modüler mimari (domain-driven + contract API + events) şunları sağlar:- Özellikleri hızlı bir şekilde görüntüleyin ve "herkesi herkesle" koordine etmeden sağlayıcıları bağlayın;
- Seçici olarak ölçeklendirin (kasadan ayrı olarak canlı video, oyun kataloğundan ayrı olarak cüzdan);
- Riskleri izole edin (promosyondaki bir hata cüzdanı düşürmez);
- Lisanslara uymak (alan adı sınırları içinde günlüğe kaydetme/sürümler/politikalar);
- Açık sözleşmeler, yeniden kullanım ve otomasyon yoluyla TCO'yu azaltın.
Etki alanı haritası (arıza örneği)
Cüzdan/Defter - para, döviz hedge, bonus bakiyeleri, PITR, denetim.
Kasiyer/Ödemeler - PSP, on-rampa/off-rampa, KYT, idempotent webhooks.
Gaming Bridge - sağlayıcı adaptörleri, yuvarlak/bahis normalleştirme.
Katalog/Lobi - oyunlar, sağlayıcılar, özellikler ve görüntüleme kuralları.
Promo/Bonus - stok kuralları, kuponlar, bahis.
KYC/AML/RG - kimlik doğrulama, yaptırımlar/PEP, sınırlar ve kendini dışlama.
Deneyim - ön uç, CDN, i18n, A/B, Telegram WebApp.
Telemetri/Analitik - olaylar, vitrinler, ML/AI.
Uyumluluk ve Denetim - MGA/UKGC raporları, WORM arşivi.
Modüler mimari ilkeleri
1. DDD sınırları (sınırlı bağlam). Veri ve mantık hakkında net bilgi.
2. API-first + etkinlikleri. OpenAPI/AsyncAPI, JSON-Schema, sözleşme testleri.
3. Sürüm oluşturma ve uyumluluk. 'v1 - v1. 1 - v2 '(genişlet - göç et - kontrat).
4. Idempotency & Tam olarak bir kez niyet. İstek anahtarları, olay tekilleştirme.
5. Varsayılan güvenlik. mTLS, HMAC imzaları, kısa JWT, RBAC/ABAC.
6. Bağımsız yayınlar. Kanarya/mavi-yeşil dağıtımı, "iki yazarlı" göçler yasaktır.
7. Gözlenebilirlik. Uçtan uca 'traceId', modül başına SLO metrikleri.
8. Ficha bayrakları. Trafik/coğrafi/kullanıcı segmentleri, güvenli geri dönüşler.
Entegrasyon katmanı: sağlayıcılar ve PSP nasıl bağlanır
Adaptör/Köprü deseni: Her oyun/ödeme sağlayıcısı, tek bir platform sözleşmesine sahip bir eklentidir.
Oyunlar: normalleştirme 'roundId/betId/status', hata eşleme, limit önbelleği.
Ödemeler: Tek bir arayüz 'yetkilendirme/yakalama/geri ödeme/ödeme', idempotency ile webhooks.
Bağlantı kesilemezlik - Arızalı adaptör başkalarını etkilemeden bakıma alınır.
Örnek sözleşme (OpenAPI parçası):Yaml post/cüzdan/debit:
requestBody:
İçerik:
uygulama/json:
şema:
$ ref: '#/components/schemas/DebitRequest @ v1'
Yanıtlar:
'200': {$ ref: '#/components/schemas/DebitResult @ v1'}
'409': {açıklama: IDEMPOTENT_REPLAY}
"Dolaşım sistemi'olarak olaylar
Otobüs (Kafka/NATS) Etkinliği:- 'bet. ',' yuvarlak yerleştirilir. Yerleşmiş ',' ödeme. Talep edilen/onaylanan ',' kyc. doğrulanmış/başarısız ',' rg. limit_set', 'bonus. verilen/tüketilen ', kasiyer. Webhook. Alınan ',' cüzdan. hold/release ',' uyarısı. slo_breach'.
- Olaylar geçmişi iptal etmez; Ayarlamalar - ayrı telafi edici olaylarla.
- Her modül sadece orijinal olaylarını, türevlerini - yeni konular olarak yazar.
veri: katmanlar ve tutarlılık
Modül başına OLTP: Postgres/MySQL/KeyDB - izole işlemler.
OLAP/vitrinler: ClickHouse/BigQuery olaylardan inşa edilmiştir; OLTP ve analizler karışmaz.
Özellik Deposu/ML: Özellik ve TTL sürümleri ile OLTP bağımsız katman.
Tutarlılık: stratejik olarak modüller arasında nihai ve para için - sınırlarda yerel ACID + idempotent eylemleri.
Dağıtma ve ölçekleme
Konteynerler (Docker/K8s): Otomatik ölçekli modulo (cüzdan - CPU/IO; Canlı video - ağ; Köprü - RPS).
Çevre yalıtımı: ağ politikaları, modül başına bireysel sırlar/anahtarlar, farklı PII/para/telemetri mağazaları.
Trafik şekillendirme: özellik bayrakları, kanarya payı, bölgesel yollar.
DR/HA: Multi-AZ; Para için varlık-yükümlülük, okumalar/medya için varlık-varlık.
Uyumluluk modüllere "dikilir"
KYC/AML/RG, politikaları ve çözüm günlüğü ('policyVer') olan tescilli bir modüldür.
Denetim/WORM - değişmez para/tur/ödeme olayları deposu.
Raporlama - yargı alanlarına göre ihracat (MGA/UKGC), bütünlük/zamanlama için SLA.
Örnek akışlar
Oran - hesaplama - ödeme
1. 'gaming-bridge' 'bet. placed' (idempotent) gönderir.
2. 'wallet' 'hold' yapar ve 'wallet' yayınlar. Tutun '.
3. 'gaming-bridge' yuvarlak sağlayıcının sonucunu alır. Yerleşmiş.
4. 'wallet' 'settle' (release/payout) 'cüzdanını dikkate alır. Yerleşmiş.
5. 'promo' olayları tüketir ve bir bonus tahakkuk ettirir - 'bonus. Yayınlandı '.
Nakit masası (depozito)
1. 'kasiyer'bir' ödeme 'oluşturur. Niyet 'с' Idempotency-Key '.
2. PSP, webhook'u "kasiyer'olarak adlandırır. Webhook. Alındı '.
3. 'cüzdan. Kredi "aslında" - analitik ve RG için bir etkinlik.
Kapalı kalma süresi olmayan değişiklikler (genişlet - taşı - sözleşme)
1. Genişlet: 'V1'e alanlar/uç noktalar eklendi. 1 ', eski müşteriler bozulmaz.
2. Migrate: Tüketiciler yeni şeyler okur, her iki versiyonda da yazar (sadece parasal olmayanlar için çift yazma).
3. Sözleşme: EOL 'v1 duyuruldu. 0 ', planlandığı gibi N hafta sonra kaldırıldı.
Platform mühendisliği
Altın Yollar: modül şablonları (repo askeleon, CI/CD, uyarılar, SLO, sırlar).
Sözleşme testleri: CI'da Pact/AsyncAPI testleri; Sahte sağlayıcılarla entegrasyon ortamı.
Servis kataloğu (Backstage): Sahibi kim, SLA, API sürümleri, olay kitapları.
Modülerlik Başarı Metrikleri
Fikirden üretim sürümüne kadar geçen süre ↓ X kez.
↑ modülüne göre yayın sıklığı (gün/hafta başına), değişim-başarısızlık oranı ↓.
↓ olaylarında MTTR (izolasyon nedeniyle).
Kızılötesi maliyet/GGR stabildir veya trafik artışı ile ↓ (seçici ölçek).
Sağlayıcı/PSP entegrasyon süresi (brifingden prod'a kadar) ↓.
Anti-desenler
Mikro Hizmetler için Mikro Hizmetler. Net veri sınırları olmadan, bağlantı ve karmaşıklık artıyor.
Modüller arasındaki ortak DB'ler/diyagramlar. İzolasyonu ve bağımsız sürümleri öldürür.
Versiyonu/sözleşmesi olmayan olaylar. Tüketicileri "sessizce" kırın.
Para için çift yazma. Tutarsızlık riski sadece bir yazar aracılığıyla idempotent adımlardır.
Her şeyle küresel "fayda katmanı". Gizli bir monolite dönüşür.
Özellik bayrakları ve kill-switch yok. Herhangi bir hata anında herkesi vurur.
OLTP/OLAP karışımı. Raporlar oranları/cüzdanı yavaşlatır.
Gözlemlenebilirlik yok. SLO ve bağlantı olaylarını ölçmek için hiçbir şey yoktur.
Modüler Mimari Geçiş Kontrol Listesi
Strateji ve etki alanları
- Sınırlı bağlamlar, sahipler ve modül KPI'ları tanımlanmıştır.
- Etkileşim haritası: API/olaylar, kritiklik ve SLO.
Sözleşmeler ve güvenlik
- OpenAPI/AsyncAPI + JSON-Schema; versiyon ve yaşam döngüsü.
- mTLS/HMAC, kısa JWT, sınırlarda RBAC/ABAC.
Veri
- Bölünmüş OLTP; Olaylar OLAP'ın kaynağıdır.
- API/webhook'larda idempotency, mesaj tekilleştirme.
CI/CD ve Sürümler
- Kanarya/mavi-yeşil, özellik bayrakları, autoscale modulo.
- CI sözleşme testleri; Sahte sağlayıcılarla ortam.
Gözlemlenebilirlik
- 'traceId'ile günlükler/metrikler/izler; SLO panoları.
- İş metriklerine göre uyarılar (VOID, reddet, ödeme gecikmesi).
Uyumluluk
- WORM para/tur arşivi, düzenleyici raporlamanın ihracatı.
- Çözüm günlüğü ile ayrı bir modül olarak KYC/AML/RG.
Mini örnekler
Event 'round. Yerleşmiş @ v1 ':Json
{
"event ":" round. "" v ":" 1 "," roundId ":" R-2025-10-17-evo-23 "," gameId ":" evo _ blackjack _ 23 "," bets ": [{" betId ":'b _ 92f", "playerId": "p _ 1", "stake": "10. 00 ", "ödeme":" 15. 00 ", "sonuç":" KAZANMAK"}], "ts ":" 2025-10-17T14: 23:13. 120Z, "" traceId ":'tr _ 5f1"
}
Idempotent cüzdan:
http
POST/cüzdan/yerleşme
X-Idempotency-Key: 9a7f-2b1c
{
"RoundId":" R-2025-10-17-evo-23", "işlemler ": [{"playerId":" p _ 1"," delta":" 5. 00, ""para birimi":" EUR"}]
}
Modüler mimari, casino platformunu "kırılgan bir kombinasyon'dan güvenilir alanların bir bileşimine dönüştürür: her biri kendi sözleşmeleri, verileri ve SLO'su vardır. Bu, entegrasyonları hızlandırır ve serbest bırakır, seçici ölçekleme sağlar, uyumluluğu basitleştirir ve olay risklerini azaltır. Etki alanı sınırlarını, sözleşmeleri ve olayları vurgulayarak başlayın, güvenlik ve gözlemlenebilirlik içinde dokunun - ve ürünle birlikte büyüyen, yavaşlatmayan bir platform elde edersiniz.