GH GambleHub

Çäk iýerarhiýasy

Çäk - amalyň wagtyna/göwrümine/bahasyna resmileşdirilen çäklendirmedir. iGaming we fintech-de çäkler howpsuzlygyň, düzgünleşdirmelere laýyklygyň we töwekgelçilikleri dolandyrmagyň esasyny düzýär. Çäklendirmeleriň iýerarhiýasy goşa harçlanmagyň, stawkalardan/goýumlardan, bonuslardan hyýanatçylykly peýdalanmagyň we jogapkär oýnuň bozulmagynyň öňüni almak üçin kimiň düzgüniniň has möhümdigini we nirede ýerine ýetirilýändigini kesgitleýär.

1) Çäkleriň klassifikasiýasy

Ulanyş güýjüne görä

Hard - ýeňip bolmajak (amallary gadagan etmek).
Soft - duýduryş/friksiýa (kapça, tassyklama), gaýtalananda hard-a çenli ýokarlanmak.

Tebigaty boýunça

Pul: goýumyň/stawkanyň/tölegiň mukdary; gündelik/hepdelik/aýlyk çäkler.
Wagtlaýyn: sessiýanyň dowamlylygy, arakesmeler, "sowatmak", wagt-autlar.
Mukdar taýdan: geleşikleriň, spinleriň, API soraglarynyň sany.
Tizlikli (rate limits): RPS/bäsdeşlik ukyby.
Kwotalar: penjire üçin hereket býudjeti (Günde/hepdede N).
Kontekst: oýun/üpjün ediji/töleg usuly/enjam/ýurt boýunça.

Eýesine görä

Düzgünleşdiriji/marka (tenant/sebit)

Ulgamlaýyn (platforma, infrastrukturany goramak)

Ulanyjylar (RG içindäki self-limits)

2) Ölçegler we açarlar (skoping)

Her çäk kontekste (açar) birikdirilýär:

tenant_id · region · license · currency · channel · brand player_id · kyc_tier · rg_state · age game_id · provider_id · product (casino/sports/live)
payment_method · device_fingerprint · ip_asn

Açar näçe takyk bolsa, şonça-da ileri tutulýar (aşaky iýerarhiýa serediň).

3) Iýerarhiýa we ileri tutulýan ugurlar (most specific wins)

Umumy derejeden hususy derejä çenli derejeleri tertipleşdireliň:

GLOBAL_DEFAULT
< TENANT/BRAND
< REGION/LICENCE
< PRODUCT/PROVIDER/GAME
< CURRENCY/CHANNEL/PAYMENT_METHOD
< PLAYER (KYC/RG)
< SESSION/DEVICE
<REQUEST (idempotency-key operation)
Düzgünler:
  • Has dar kontekst giňligi ýapýar: player> region.
  • Islendik aç-açan deny allow ýeňýär.
  • Soft/hard gapma-garşylyklary hard-yň peýdasyna çözülýär.
  • Kwotalaryň/penjireleriň merjesinde iň az rugsat berilýän baha (min-cap) ýeňýär.

4) Maglumatlaryň modeli (ýönekeýleşdirilen)

sql
CREATE TABLE limits (
id      bigserial primary key,
scope jsonb, -- context keys (tenant, region, player_id,...)
kind     text,     -- bet_amount, deposit_daily, rps_api, payout_single, session_duration type     text,     -- HARD      SOFT      QUOTA     RATE value numeric, -- sum/qty/seconds/ops window_sec int, -- for QUOTA/RATE, else null burst int, -- for RATE token-bucket currency text, -- if applicable reason_code text, -- regulator/product/security valid_from timestamptz,
valid_to   timestamptz,
priority int default 0, -- manual specificity overlide created_by text,
created_at  timestamptz default now()
);

CREATE TABLE limit_counters (
key_hash   text primary key,  -- hash(scope,kinda,window_start)
window_start timestamptz,
consumed numeric, -- money/pcs/sec updated_at timestamptz
);

Idempotentlik: ähli amallar 'operation _ id' göterýär; hasaplaýjynyň inkrementi bir gezek ýerine ýetirilýär (inbox/outbox ýa-da compare-and-swap wersiýasy boýunça).

5) Baha beriş algoritmi (evaluation)

1. "kind" we "scope" çatrygy boýunça dalaşgärleri ýygnamak.
2. Aýratynlygy boýunça reýting (gabat gelýän ölçegleriň sany) we 'priority'.
3. Merge parametrleri: berklik (hard> soft), min-cap, min-window.
4. Kwotalary/reýt-çäkleri barlamak: belgi-baket (RATE) + fiks/süýşýän penjire (QUOTA).
5. Решение: `ALLOW | SOFT_WARN | DENY` + `retry_after`/`remaining`.
6. Yz ýazgysy: wakanyň we metrikanyň barlagy.

Result-şertnamanyň ýalan resminamasy:
json
{
"decision":"DENY",
"kind":"deposit_daily",
"remaining":0,
"window_reset_at":"2025-10-31T21:00:00Z",
"matched_limit_id":12345,
"policy":"REGULATORY",
"reason":"DAILY_CAP_REACHED"
}

6) Ulanyş nokatlary (enforcement points)

API Gateway - infrastrukturany goramak: RATE (RPS), CONCURRENCY, burst.
Domen hyzmatlary - semantik çäkler: goýumlar, stawkalar, tölegler, sessiýalar.
Üpjün ediji adapterler - üpjün edijileriň gaýtalaýan/lokal çäkleri (çagyrylýança tassyklamak).
Müşderi UX - öňüni alyş maslahatlary (SOFT), "N galdy", taýmerler.

Düzgün: Bir gezek kwotany/bellikleri - amalyň yzyna dolanyp bolmajak ýerinde (gapjyk/hakyky tassyklanan ädim saklanylandan soň) ýazýarys.

7) Pul çäkleri: goýum/stawka/töleg

Per currency: çäklendirmeleri FX arkaly däl-de, amalyň walýutasynda saklaň.
Min/Max: `min_bet`, `max_bet`, `max_payout_single`.
Penjireler: kesgitlenen çäkli 'deposit _ daily/weekly/monthly' (mysal üçin, ygtyýarnamanyň wagt zolagynda).
Kompozisiýa: iň soňky rugsat edilen aralyk = kesişme (sebit ∩ marka ∩ ulanyjy).

8) Jogapkär oýun (RG)

Self-limits (oýunçy özi kesgitledi) elmydama marka çäklerinden has berkdir.
Wagt çäkleri: 'session _ duration', 'cool _ off', 'self _ exclusion'.
Eskalasiýa: ýumşak çäkden ýokary → duýduryş, gaýtalamak → hard (penjiräniň içinde).
Audit: RG-nyň her bir üýtgemegi düzedilmän ýazylýar (kim/haçan/näme üçin).

9) Rate limit vs Quota: haçan näme

Rate limit (token-bucket/leaky): partlamalardan goramak; gateway/adapterlerde ulanmak.
Quota (fixed/sliding window): hereketleriň/puluň umumy býudjetini dolandyrmak; domende ulanmak (deposit_daily, bet_count_hourly).
Köplenç bilelikde ulanylýar: 'RATE' (duýdansyz iň ýokary) + 'QUOTA' (gündelik býudjet).

10) Köp tenant we köp sebit

Çäklerde elmydama 'tenant _ id' we 'region/licence' bar.
Residency: hasaplaýjylar we saklamak - "öý" sebitinde.
Fairness: RATE/QUOTA per tenant pullaryny bölüň, şonuň üçin "şowhunly" başgalaryň SLO-syny bozmaz.

11) Idempotentlik we yzygiderlilik

Buyruklar 'operation _ id'; gaýtalamak 'consumed' -i köpeltmeli däldir.
Pul üçin - strict path: gapjyk ätiýaçlygy we bir geleşikde/sagda (TCC) counters inkrement.
RATE üçin - häzirki penjiräniň atom inkrementlerini/ammarlaryny ulanyň.

12) Gözegçilik etmek

Metrikler:
  • `limit_eval_p95_ms`, `decision_rate{ALLOW,DENY,SOFT}`,
  • 'quota _ remaining _ percent' esasy görnüşleri boýunça,
  • `rate_throttled`, `burst_dropped`,
  • `rg_self_limit_hits`, `regulatory_hits`.

Логи/трейсинг: `matched_limit_id`, `scope_hash`, `operation_id`, `window_start/reset`, `remaining`.

Alertler: 'DENY '/' 429' bosagadan ýokary, düzgünleşdiriji kaplaryň ýygy-ýygydan gazanylmagy, oýunçy/enjam boýunça "gyzgyn key".

13) Wersiýalaşdyrmak we audit

Her düzgün - 'valid _ from/valid _ to', 'created _ by', 'reason _ code'.
События: `LimitCreated/Updated/Deleted`, `LimitHit`, `LimitDenied`.
Taryhy çözgütleri (dispute-ready) oýnamak üçin işjeň düzgünleriň "suratyny" saklaň.

14) Synag

Contract tests: aýratynlyklaryň/ileri tutulýan ugurlaryň shemasy we merji.
Property-based: "most specific wins", "deny allow", "min-cap".
Golden cases: standart gapma-garşylyklar toplumy (tenant vs sebit, RG vs marka).
Chaos: soraglar (RATE), hasaplaýjylar boýunça ýaryşlar, toparlaryň gaýtalanmagy (idempotentlik).
E2E: düzgünleşdirijiniň çek-sahypalarynda limitleriň duşuşyklary (goýum/hepde/aý).

15) Pleýbuklar

1. Gateway-de tupan 429/throttling

Concurrency azaltmak, token-baket wagtlaýynça artdyrmak, möhüm ýollaryň ileri tutulmagyny öz içine almak, çeşmeleri seljermek (ASN/IP).

2. Kadalaşdyryjy çäk boýunça köpçülikleýin ýüz öwürmeler

Penjireleriň we wagtlaryň tertibini barlamak; soft-UX (düşündirişleri) uzaltmak, komplayense habar bermek.

3. Ýaryşlar sebäpli ýalan-oňyn şowsuzlyklar

'player _ id/kind' açary boýunça seriýalizasiýany açyň, 'operation _ id' açary boýunça CAS/dedupa geçiň.

4. Üpjün ediji çägi bilen gapma-garşylyk

Min/max per game sinhronlamak, adaptere öňünden tassyklamany goşmak, oýnuň katalogyny/pleýsmentini wagtlaýyn peseltmek.

16) Adaty ýalňyşlyklar

Düzgünleriň arasynda iýerarhiýanyň ýoklugy → "arkan çekmek".
Serwer tassyklamasyz UI-de çäkleri hasaplamak.
Kwotalary reýt-çäkler bilen çalyşmak (we tersine).
Pul çäklerinde (CLP/JPY) walýutalary/ädimleri äsgermezlik etmek.
Deňsizlik ýok → kwotanyň iki gezek ýazylmagy.
Ähli tenantlar üçin birmeňzeş RATE howuzy → problemalar şeýring.
Auditiň ýoklugy → ret edilmegini düşündirmek mümkin däl.

17) Çalt reseptler

Nyrhy kabul etmek: 'max _ bet' = min (sebit, oýun, üpjün ediji, ulanyjy RG); RATE na '/bets. place '= 20 rps/player, QUOTA = 500 stawka/gün.
Depozitler: 'deposit _ daily/monthly' + 'deposit _ single'; PSP çäklerini çaklamak.
Sessiýalar: 'session _ duration' hard + her N minutda ýatlatmalar (soft).
API-gorag: açarlar boýunça global RATE 'ip _ asn' we 'tenant _ id'; kanar penjireleri.

18) Azyk önüminden öň çek-sanawy

  • Aýratynlyk iýerarhiýasy we merj syýasaty (most specific wins, deny> allow) hasaba alyndy.
  • 'scope', 'kind', 'type', penjireler, walýutalar we ileri tutulýan ugurlar bilen maglumatlaryň modeli.
  • Ulanyş nokatlary: gateway (RATE), domen (QUOTA/pul), adapterler (üpjün ediji).
  • Idempotentlik ('operation _ id') we açar seriýalizasiýasy; atom hasaplaýjylary.
  • Syn edilişi: çözgütleriň metrikleri, penjire laglary, aladalar; 'matched _ limit _ id' bilen yzarlamak.
  • Üýtgeşmeleriň we işleriň wersiýalaşdyrylmagy we üýtgemeýän barlagy.
  • Synag bukjasy: contract/property/golden/chaos/E2E.
  • Köp tenant fairness we data residency berjaý edildi.
  • UX SOFT çäkleri üçin: düşnükli habarlar, 'remaining/retry _ after'.
  • Wakalaryň pleýbuklary ylalaşyk we goldaw bilen ylalaşylýar.

Netije

Çäkleriň iýerarhiýasy bölünen sanlaryň toplumy däl-de, karar kabul etmegiň ulgamydyr. Anyk aýratynlygy we ileri tutulýan ugurlaryň tertibi, maglumatlaryň ýeke-täk modeli, dogry ulanyş nokatlary, idempotentlik we syn etmek çäkleri howpsuzlygyň we laýyklygyň ygtybarly konturyna öwürýär, bu bolsa tenantlar, sebitler we önümler boýunça giňeldilýär we ösüşe päsgel bermeýär.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.