Маҳдудияти иерархия
Маҳдудият маҳдудияти расмии амалиёт дар вақт/ҳаҷм/арзиш мебошад. Дар IGaming ва fintech, маҳдудиятҳо барои бехатарӣ, риояи танзим ва идоракунии хавфҳо асос мебошанд. Иерархияи лимит муайян мекунад, ки қоидаи кӣ аз ҳама муҳим аст ва дар куҷо он бо мақсади пешгирии хароҷоти дукарата, аз ҳад зиёд гарав/амонат, сӯиистифода аз мукофотпулӣ ва вайронкунии бозии масъул иҷро карда мешавад.
1) Таснифи маҳдудиятҳо
Аз рӯи қувваи барнома
Сахт - ҳалнашаванда (манъи амалиёт).
Нарм - огоҳӣ/сурхшавӣ (captcha, тасдиқ), шиддат ба сахт ҳангоми такрор.
Аз рӯи табиат
Пули нақд: маблағи амонатӣ/меъёрҳо/пардохтҳо; маҳдудиятҳои ҳаррӯза/ҳафтаина/моҳона.
Вақт: давомнокии сессия, танаффус, "хунуккунӣ", танаффус.
Миқдор: шумораи амалиётҳо, spins, дархостҳои API.
Маҳдудиятҳои нархҳо: RPS/рақобат.
Квотаҳо: буҷети амалҳо дар як тиреза (N дар як рӯз/ҳафта).
Контекстуалӣ: бо усули бозӣ/провайдер/пардохт/дастгоҳ/кишвар.
Соҳиби
Танзим/бренд (иҷорагир/минтақа)
Система (платформа, ҳифзи инфрасохтор)
Истифодабаранда муайян карда шудааст (маҳдудиятҳо дар дохили RG)
2) Андозагирӣ ва калидҳо (миқёс)
Ҳар як маҳдудият ба матн (калид) вобаста аст:
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
Чӣ қадаре ки калид дақиқтар бошад, афзалият баландтар аст (нигаред ба зинанизом дар зер).
3) Иерархия ва афзалиятҳо (пирӯзиҳои мушаххас)
Биёед сатҳҳоро аз умумӣ то мушаххас ташкил кунем:
GLOBAL_DEFAULT
< TENANT/BRAND
< REGION/LICENCE
< PRODUCT/PROVIDER/GAME
< CURRENCY/CHANNEL/PAYMENT_METHOD
< PLAYER (KYC/RG)
< SESSION/DEVICE
<REQUEST (idempotency-key operation)
Қоидаҳо:
- Контексти танг ба таври васеъ мувофиқат мекунад: бозингар> минтақа.
- Ҳар гуна рад кардани возеҳи пирӯзӣ имкон медиҳад.
- Низоъҳои мулоим/сахт ба манфиати сахт ҳал карда мешаванд.
- Бо якҷояшавии квотаҳо/тирезаҳо, арзиши ҳадди ақали имконпазир (min-cap) ғолиб мешавад.
4) Модели маълумот (соддакардашуда)
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
);
Idempotence: ҳамаи амалиётҳо 'operation _ id'; афзоиши ҳисобкунак як маротиба иҷро карда мешавад (паёмдони/outbox ё муқоиса ва-своп мувофиқи версия).
5) Алгоритми арзёбӣ
1. Ҷамъоварии номзадҳо аз рӯи "меҳрубонӣ" ва убури "миқёс".
2. Гурӯҳбандӣ аз рӯи мушаххасот (шумораи андозагирии мувофиқ) ва 'афзалият'.
3. Диапазони параметр: сахтгирӣ (сахт> мулоим), мин-сарпӯш, мин-тиреза.
4. Маҳдудияти квота/меъёрро санҷед: сатил-сатил (RATE) + равзанаи ислоҳ/лағжиш (QUOTA).
5. Решение: 'Иҷозат диҳед | SOFT_WARN | DENY' + 'retry _ after '/' мондан'.
6. Сабти пайгирӣ: чорабинии аудит ва ченакҳо.
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) Нуқтаҳои иҷроиш
Дарвозаи API - муҳофизати инфрасохтор: RATE (RPS), CONCURRENCY, таркиш.
Хизматрасонии домейнҳо - маҳдудиятҳои семантикӣ: амонатҳо, меъёрҳо, пардохтҳо, сессияҳо.
Адаптерҳои провайдер - маҳдудиятҳои провайдери такрорӣ/маҳаллӣ (пеш аз занг тасдиқ кунед).
Client UX - таклифҳои пешгирикунанда (SOFT), "N чап", таймерҳо.
Қоида: як маротиба квота/нишонаҳоро хориҷ кунед - дар он ҷое ки амалиёт бебозгашт мегардад (пас аз нусхабардории ҳамён/қадами тасдиқшудаи дуруст).
7) Маҳдудиятҳои нақдӣ: амонат/меъёри/пардохт
Барои як асъор: Маҳдудиятҳои асъорро нигоҳ доред, на тавассути FX дар парвоз.
Min/Max: 'min _ bet', 'max _ bet', 'max _ payout _ single'.
Windows: 'амонат _ ҳар рӯз/ҳафта/моҳ' бо ҳудуди муқарраршуда (масалан, дар мӯҳлати иҷозатнома).
Таркиб: диапазони ниҳоии иҷозатдодашуда = буриш (бренди минтақавӣ ∩ бренди ∩ фармоишӣ).
8) Бозии масъул (RG)
Худшиносӣ (плеер аз худаш пурсид) ҳамеша нисбат ба маҳдудиятҳои бренди сахттар аст.
Маҳдудиятҳои вақт: 'session _ давомнокӣ', 'cool _ off', 'худ _ истисно'.
Баландшавӣ: аз ҳадди нарм ва огоҳӣ зиёдтар, такрори сахти → (дар дохили тиреза).
Аудит: Ҳар як тағирёбии RG ба таври ғайридавлатӣ сабт карда мешавад (кӣ/кай/чаро).
9) Меъёри меъёри против Квота: вақте ки чӣ
Меъёри меъёр (сатил/ихроҷ): муҳофизати шиддат; ба дарвоза/адаптерҳо муроҷиат кунед.
Квота (равзанаи собит/слайд): идоракунии буҷети умумии амалҳо/пул; дар домен (deposit_daily, bet_count_hourly).
Аксар вақт якҷоя истифода мешаванд: 'RATE' (қуллаҳои фаврӣ) + 'QUOTA' (буҷаи ҳаррӯза).
10) Бисёр иҷорагир ва бисёр минтақа
Маҳдудиятҳо ҳамеша 'иҷорагир _ ид' ва 'минтақа/литсензия' доранд.
Истиқомат: ҳисобкунакҳо ва анборҳо - дар минтақаи "хона".
Адолат: RATE/QUOTA алоҳида барои ҳавзҳои иҷорагир, то "ғавғо" ба SLO-ҳои дигарон халал нарасонад
11) Идемпотентсия ва пайдарҳамӣ
Фармонҳо бо 'operation _ id'; такрор набояд 'истеъмолшуда' зиёд шавад.
Барои пул - роҳи қатъӣ: захираи ҳамён ва ҳисобкунакҳои афзоиш дар як транзаксия/сага (TCC).
Барои RATE - равзанаи ҷории афзояндаи атомӣ/анборҳоро истифода баред.
12) Мушоҳидакорӣ
Нишондиҳандаҳо:- 'limit _ eval _ p95 _ ms', 'decoment _ rate {LANIGHT, DENY, SOFT}',
- 'квота _ боқимонда _ фоизи' намудҳои асосӣ,
- 'rate _ drottled', 'burst _ drop',
- 'rg _ self _ limit _ hits', 'танзимкунанда _ хит'.
Логи/трейсинг: 'matched _ limit _ id', 'scope _ hash', 'operation _ id', 'window _ start/reset', 'боқимонда'.
Огоҳиҳо: афзоиши 'DENY '/' 429' дар остона, зуд-зуд ба даст овардани ҳадди ақалли танзим, "калиди гарм" аз ҷониби плеер/дастгоҳ.
13) Версия ва аудит
Ҳар як қоида бо 'дуруст _ аз/эътибор _ ба', 'created _ by', 'reason _ code' мавҷуд аст.
События: 'Лимит/Офаридашуда/Таҷдидшуда/Нест карда шуд', 'Лимити Хит', 'Лимити инкор карда шуд'.
"Сурати кӯтоҳ" -и қоидаҳои фаъолро барои таҷдиди қарорҳои таърихӣ нигоҳ доред (ба баҳс омода).
14) Санҷиш
Санҷишҳои шартномавӣ: нақша ва доираи мушаххасот/афзалиятҳо.
Ба амвол асос ёфтааст: "пирӯзиҳои мушаххас", "рад кардани пирӯзӣ иҷозат медиҳад", "min-cap".
Ҳолатҳои тиллоӣ: маҷмӯи муноқишаҳои истинод (иҷорагир vs минтақа, RG против бренд).
Бетартибӣ: хӯшаҳоро дархост кунед (RATE), нажодҳо, фармонҳои такрорӣ (idempotency).
E2E: мувофиқати маҳдудият дар рӯйхати чекҳои танзимкунанда (амонат/ҳафта/моҳ).
15) Китобҳои бозӣ
1. Тӯфони 429/дротинг дар дарвоза
Мувофиқатро кам кунед, муваққатан сатилро зиёд кунед, афзалияти роҳҳои муҳимро фароҳам оваред, манбаъҳоро таҳлил кунед (ASN/IP).
2. Нокомии оммавӣ аз рӯи маҳдудияти танзим
Ҷадвали тиреза ва вақтро санҷед; мулоим-UX (тавзеҳот) дароз кунед, мувофиқатро огоҳ кунед.
3. Хатогиҳои мусбати бардурӯғ аз сабаби мусобиқа
Сериализатсияро бо калиди 'player _ id/kind' фаъол созед, ба CAS/dedup аз ҷониби 'operation _ id' гузаред.
4. Номутобиқатӣ бо маҳдудияти провайдер
Синхронизатсияи min/max дар як бозӣ, тасдиқи пешакиро ба адаптер илова кунед, каталоги/ҷойгиркунии бозиро муваққатан кам кунед.
16) Хатогиҳои маъмулӣ
Набудани иерархия → ҷанги байни қоидаҳо.
Ҳисоб кардани маҳдудиятҳо дар UI бе тасдиқи сервер.
Иваз намудани квотаҳо бо маҳдудиятҳои меъёрӣ (ва баръакс).
Сарфи назар кардани асъор/қадамҳо бо маҳдудиятҳои пулӣ (CLP/JPY).
Не idempotency → аз ҳисоб баровардани квотаи дукарата.
Ҳавзи ягонаи RATE барои ҳамаи иҷорагирон → мушкилоти тақсимшавӣ.
Ягон аудит → нокомӣ шарҳ дода намешавад.
17) Дорухатҳои зуд
Қабули дархост: 'max _ bet' = min (минтақа, бозӣ, провайдер, корбар RG); RATE оид ба '/гарав. place '= 20 rps/player, QUOTA = 500 гарав/рӯз.
Амонатҳо: 'амонат _ ҳамарӯза/ҳармоҳа' + 'пасандоз _ ягона'; пеш аз тасдиқи маҳдудиятҳои PSP.
Ҷаласаҳо: 'сессия _ давомнокӣ' сахт + ёдраскуниҳои ҳар як дақиқаи N (мулоим).
Муҳофизати API: RATE глобалӣ бо калидҳои 'ip _ asn' ва 'renant _ id'; тирезаҳои канарӣ барои релизҳо.
18) Рӯйхати санҷиши пеш аз фурӯш
- Аксар пирӯзиҳои мушаххас, инкор кунед> иҷозат диҳед.
- Модели маълумот бо 'миқёс', 'намуд', 'намуд', тирезаҳо, асъор ва афзалиятҳо.
- Нуқтаҳои барнома: дарвоза (RATE), домен (КВОТА/пул), адаптерҳо (провайдер).
- Номутобиқатӣ ('operation _ id') ва сериализатсия бо калидҳо; ҳисобкунакҳо атомӣ мебошанд.
- Мушоҳида: ченакҳои ҳалли масъала, ақибмонии тиреза, огоҳиҳо; пайгирӣ бо 'matched _ limit _ id'.
- Санҷиш ва аудити тағйирнопазири тағирот ва амалҳо.
- Бастаи санҷишӣ: contract/property/golden/chaos/E2E.
- Адолат ва истиқомати чандинкаратаи иҷорагирон.
- UX барои маҳдудиятҳои SOFT: паёмҳои дӯстона, 'боқимонда/retry _ after'.
- Китобҳои бозӣ дар бораи ҳодисаҳо бо мувофиқат ва дастгирӣ мувофиқат мекунанд.
Хулоса
Иерархияи маҳдудият системаи қарор аст, на маҷмӯи рақамҳои нобаробар. Мушаххасоти возеҳ ва тартиби афзалиятҳо, як модели ягонаи маълумот, нуқтаҳои дурусти татбиқ, аблаҳӣ ва мушоҳида маҳдудиятҳоро ба ҳалқаи мустаҳками бехатарӣ ва мутобиқат табдил медиҳанд, ки дар байни иҷорагирон, минтақаҳо ва маҳсулот миқёс мегиранд ва ба афзоиш монеъ намешаванд.