Ինչու՞ են կազինոն անցնում մոդուլային ճարտարապետությանը
Ինչու՞ է կազինոյի մոդուլիզմը
Պատմական մոնոլիտը դանդաղեցնում է աճը, յուրաքանչյուր փոփոխություն ձգում է ամբողջ համակարգի, պրովայդերների և PMS-ի թողարկումը SLO-ի, apdeit-ի, ամբողջ կոդով։ Մոդուլային ճարտարապետությունը (domain-driven + պայմանագրային API + իրադարձություններ) թույլ է տալիս
Արագ դուրս բերել ֆիչին և միացնել պրովայդերներին առանց «բոլորի հետ բոլորի» համակարգման։- Մեծացնել ընտրական (նախկին տեսահոլովակը սենյակից առանձին, դրամապանակը առանձին ռուսական խաղերից);
- Ռիսկերը մեկուսացնելը (սխալը չի ազդում դրամապանակի վրա);
- Պահպանեք լիցենզիաները (տրամաբանություն/վարկածներ/քաղաքականություն մետրոպոլիտենի սահմաններում);
- Նվազեցնել TCO-ը հստակ հաշվարկների, կրկնվող օգտագործման և ավտոմատացման պատճառով։
Օրինակների քարտեզը (բաժանման օրինակ)
Wallet/Ledger-ը փողն է, հիջը, բոնուսային հավասարակշռությունները, PITR-ը, աուդիտը։- Cashier/Payments - PSA, նա-ramp/փլեյ-ռամպ, KYT, idempotent webhuks։
- Gaming Bridge-ը պրովայդերների ադապտատորներն են, round/bet նորմալիզացիան։
- Catalog/Lobby - խաղեր, պրովայդերներ, ֆիչերինգ և ցուցադրման կանոնները։
- Promo/Bonus - գործողությունների կանոնները, վաուչերները, wager։
- KYC/AML/RG-ն անհատականության, սանկցիաների/RER-ի ստուգումն է, սահմանները և ինքնախաբեությունը։
- Experience-ը, CDN, i18n, A/B, Telegram Pro App-ն է։
- Telemetry/Analytics - իրադարձություններ, վիտրիններ, ML/II։
- Compliance & Audit-ը MGA/UKGC, WORM արխիվը։
Մոդուլային ճարտարապետության սկզբունքները
1. DDD սահմանները (bounded ext)։ Տվյալների և տրամաբանության հստակ տիրապետումը։
2. API-առաջին + իրադարձությունները։ OpenAPI/AsyncAPI, JSON-Schema, պայմանագրային թեստեր։
3. Տարբերակումը և համատեղելիությունը '"v1 24v1։ 1 → v2` (expand→migrate→contract).
4. Idempotency & Exactly-once-intent. Հարցումների բանալիները, իրադարձությունների դեդուպլիկացիան։
5. Լռելյայն անվտանգությունը։ MTIM, HMAC ստորագրություններ, կարճ JWT, RBAC/ABAC։
6. Անկախ ֆորումները։ Կանարեքային/կապույտ-green deple, որը պարունակում է «երկու գրողը» արգելված է։
7. Դիտարկումը։ «Trance Id» -ի միջոցով, SLO մետրերը մոդուլի վրա։
8. Ֆիչա դրոշները։ Մոսկվա/գեո/յուզեր հատվածներ, անվտանգ արձագանքներ։
Ինտեգրման շերտը 'ինչպես միացնել պրովայդերներին և PSA
Adapter/Bridge Pattern: Յուրաքանչյուր խաղերի/վճարումների պրովայդեր պլատֆորմի մեկ պայմանագրով։
Խաղերը 'նորմալացում' roundID/betID/status ", mapping սխալներ, kes limits։- Վճարումները 'մեկ ինտերֆեյս' authorize/capture/refund/payout ", webhuks հետ։
- Անջատումը 'անսարք ադապտերը թարգմանվում է maintenae-ում առանց այլ ազդեցության։
Պայմանագրի օրինակը (OpenAPI հատվածը)
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 }
Իրադարձությունները որպես «արյան համակարգ»
Շինա (Kafka/NATS) ռուսական իրադարձություններ
`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`.
Կանոնները
Իրադարձությունները չեն վերացնում անցյալը։ կոմպոզիցիաները առանձին փոխհատուցող իրադարձություններ են։- Յուրաքանչյուր մոդուլ գրում է միայն իր սկզբնական իրադարձությունները, որոնք արտադրվում են որպես նոր թեմաներ։
Տվյալները ՝ շերտեր և համաձայնություն
OLTP մոդուլի վրա 'Postgres/MySQL/KronDB մեկուսացված գործարքներ։- OLAP/վիտրիններ ՝ ClickHouse/BigQuery կառուցվում են իրադարձություններից։ OLTP-ը և վերլուծությունը չեն խառնվում։
- Feature Store/ML: անկախ OLTP շերտից, ֆիչի և TTL տարբերակներով։
- Համաձայնություն 'ռազմավարական eventium մոդուլների միջև, իսկ փողի համար' տեղական ACID + idempotent գործողություններ սահմաններում։
Դոպլայի և մասշտաբի
Բեռնարկղերը (Docker/K8s) 'ալյումինի (wallet - CPU/IO; 2019 տեսահոլովակը ցանցն է; bridge — RPS).
Պարագծի մեկուսացում 'ցանցային քաղաքականություններ, առանձին գաղտնիքներ/բանալիներ մոդուլին, տարբեր PII/փողի/հեռաչափության։
Մոսկվա-Շեյփինգը 'ֆիչի դրոշները, կանարական մասը, տարածաշրջանային երթուղիները։- DR/HA: Multi-AZ; նախկին լոկոմոտիվ փողի համար, կարդալու/լրատվամիջոցների համար։
Complaens «white» մոդուլների մեջ
KYC/AML/RG-ը սեփական մոդուլն է քաղաքական և լուծումների ամսագրերի հետ («policyVer»)։- Audit/WORM-ը փողի/փուլերի իրադարձությունների անփոփոխ պահեստ է։
- Հաշվետվությունը էքսպորտների արտահանումն է (MGA/UKGC), SLA ամբողջովին/ժամանակին։
Հոսքերի օրինակ
Տոկոսադրույքը հաշվարկում է վճարումը
1. "gaming-bridge" ուղարկում է "bet. placed` (idempotent).
2. «wallet» -ը անում է «hold» և հրապարակում է «wallet»։ hold`.
3. «gaming-bridge» -ը ստանում է pround prower արդյունք։ settled`.
4. «wallet» կարծում է «settle» (releam/payout) - «wallet»։ settled`.
5. «promo» -ը պահանջում է իրադարձություններ և հաշվարկում է box 'bonus բոնուսը։ issued`.
Կասա (դեպոզիտ)
1. "cashier" -ը ստեղծում է "payment. intent` с `Idempotency-Key`.
2. PSA-ն անվանում է webhuk no 'cashier։ webhook. received`.
3. `wallet. credit "փաստն այն է, որ կատարվում է վերլուծության և RG-ի համար։
Փոփոխություններ առանց անցյալի (expand novmigrate no. ract)
1. Expand: ավելացրեցին դաշտերը/endpoint 'v1։ 1 ', հին հաճախորդները չեն կոտրվում։
2. Migrate: սպառողները նոր են կարդում, գրում են երկու տարբերակներում (dom-write միայն փողի համար)։
3. Delract: հայտարարեցին EOL 'v1։ 0 ', հանեցին N շաբաթից պլանով։
Պլատֆորմենային ճարտարագիտություն
Golden Paths: մոդուլային ձևանմուշներ (repo-asceleon, CI/CD, ալերտներ, SLO, գաղտնիքներ)։
Պայմանագրային թեստեր ՝ Pact/AsyncAPI tes.ru CI; ինտեգրման միջավայրը ֆեյկ պրովայդերների հետ։- Ծառայությունների կատալոգը (Backstage) 'ով է սեփականատերը, SLA, API տարբերակները, ռուկբուկները։
Մոդուլիզմի հաջողության չափումները
Lead Time-ից մինչև prod-pro-ը X անգամ։- Ածխաջրածինների հաճախությունը մոդուլով (օր/շաբաթ), change-fail rate-ը։
- MTTR-ը պատահականության դեպքում (մեկուսացման պատճառով)։
- Infra cost/GGR international-ը կամ արտադրվում է հաճախորդների աճի ժամանակ (ընտրական սկեյլ)։
- Ռուսական պրովայդերի/PSA (ճեպազրույցից մինչև անցում) ժամանակը։
Anti-patterns
«Միկրովայրկյաններ միկրովայրկյանների համար»։ Առանց տվյալների հստակ սահմանների աճում է կապը և բարդությունը։
Ընդհանուր BD/սխեմաները մոդուլների միջև։ Սպանում է մեկուսացումը և անկախ օրինագծերը։- Իրադարձությունները առանց վարկածի/պայմանագրի։ Նրանք կոտրում են սպառողներին «հանգիստ»։
- Dance-write փողի համար։ Անհամաձայնության ռիսկը միայն մեկ գրողի միջոցով գաղափարական քայլերն են։
- Գլոբալ «կոմունիտային շերտը» ամբողջ անընդմեջ։ Այն վերածվում է թաքնված մոնոլիտի։
- Չկա ֆիչի դրոշներ և kill-switch։ Յուրաքանչյուր սխալ անմիջապես ծեծում է բոլորին։
- OLTP/OLAP խառնուրդ։ Զեկույցները խոչընդոտում են տոկոսադրույքները/դրամապանակը։
- Առանց դիտարկման։ Ոչինչ չկա չափել SLO-ը և կապել միջադեպերը։
Չեկ-թերթիկ անցում դեպի մոդուլային ճարտարապետություն
Ռազմավարություն և ֆորումներ
- Որոշված է bounded express, սեփականատեր և KPI-ը։
- Փոխազդեցության քարտեզը 'API/իրադարձություններ, քննադատություն և SLO։
Պայմանագրեր և անվտանգություն
- OpenAPI/AsyncAPI + JSON-Schema; տարբերակը և կյանքի ցիկլը։
- mTFC/HMAC, կարճ JWT, RBAC/ABAC սահմաններում։
Տվյալները
- Բաժանված OLTP; իրադարձությունները OLAP-ի աղբյուրն են։
- Idempotency-ը API/webhuks-ում, հաղորդագրությունների deduplication։
CI/CD և ալյումինե
- Canareka/blue-green, fich-flay, Autockayl-ի վրա։
- CI պայմանագրային թեստերը; միջավայրը կեղծ պրովայդերների հետ։
Դիտարկումը
- Logs/metriks/treiss 'trance Id'; SLO-dashbords։
- Alertas բիզնես մետրերի վրա (VOID, reject, payout lag)։
Complaens
- WORM արխիվը փողի/փուլերի, կարգավորող հաշվետվության արտահանումը։
- KYC/AML/RG որպես առանձին մոդուլ լուծումների ամսագրի հետ։
Մինի-օրինակներ
Իրադարձությունը 'round. 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 դրամապանակը
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"}]
}
Մոդուլային ճարտարապետությունը «փխրուն կոմբայնից» խաղային պլատֆորմը վերածում է վստահելի օրինագծերի 'յուրաքանչյուրը իր պայմանագրերի, տվյալների և SLO-ի հետ։ Սա արագացնում է տրիբունաները և օրինագծերը, տալիս է ընտրական մեծացում, պարզեցնում է հաճույքները և նվազեցնում միգրացիայի ռիսկերը։ Սկսեք տարանցիկ սահմաններից, տարածքներից և իրադարձություններից, «լցրեք» անվտանգությունն ու դիտարկումը, և կստանաք մի պլատֆորմ, որը աճում է արտադրանքի հետ, և ոչ թե դանդաղեցնում է այն։