Ტურნირებისა და მისიების მოდული: მოვლენები, რეიტინგები, ჯილდოები
1) ბიზნესის მიზნები და საქმიანობის ტიპები
მიზნები: შემცირების ზრდა (D1/D7), ARPPU, სესიების სიღრმის გაზრდა, ახალი თამაშებისა და ბაზრების პოპულარიზაცია.
ფორმატები:- ტურნირები: ქულების/მოგების/მულტიპლიკატორების, სპრინტების (30-60 წუთი), დღისით, სეზონური.
- მისიები/სტუმარი: დავალებების თანმიმდევრობა (ითამაშე N Spins, მოიგე X, შეეცადე Y პროვაიდერი), პროგრესი და ჯილდოები ეტაპზე.
- ლიდერები: გლობალური, ბაზრები/თამაშები/ფსონები, პირადი (მეგობრები/VIP).
- ჯეკპოტი/სტუდიების რეიტინგი: „კვირის საუკეთესო პროვაიდერები“, „ნადირობა ფაქტორისთვის“.
KPI: აქტიური აუდიტორიის 12-25% -ში მონაწილეობა, პრომო 10-20% -იანი შემოსავლის წილი, საჩივრები <0. მონაწილეთა 5%, რომელიც გაცემულია საპრიზო ფონდის მიერ, არის გეგმა.
2) მონაცემთა არქიტექტურა და ნაკადები
კომპონენტები
1. Events Gateway - თამაშის მოვლენების ტექნიკა (spin, bet, win, round _ end) game-gateway/პროვაიდერებისგან.
2. Rules Engine - ასრულებს მოვლენებს ტურნირების/მისიების წესებზე, აწესებს ქულებს.
3. Leaderboard Service - აერთიანებს ქულებს, ინახავს ტოპებს/ნაჭრებს, მხარს უჭერს დახარისხებას და ჰალსტუხს.
4. პროგრამის სამსახური (მისიები) - დავალებების/ეტაპების მდგომარეობა, შუალედური ჯილდოების გაცემა.
5. Rewards Service - გაანგარიშება და უსაფრთხო გადახდა (საფულის საშუალებით: cash/bonus/fs/points).
6. Admin/Studio UI - შექმნა, დაგეგმვა, ეკონომიკის გადაჭარბება, სიმულაცია.
7. Realtime/WS არის ლიდერის, პროგრესის, შეტყობინებების განახლებების გამოქვეყნება.
8. Anti-Abuse - ლიმიტები, რისკის სიგნალები, ანტიფროდთან/ბობ მენეჯერთან ინტეგრაცია.
9. სცენა/Cache - KV/Redis ცხელი ტოპებისთვის, OLTP ფაქტებისთვის, DWH ანალიტიკოსებისთვის.
ნაკადი (e2e)
`game_event → gateway → rules_match → points → leaderboard_update → (progress_update) → notify → rewards_at_close → wallet_postings`
3) ღონისძიების მოდელი (მინიმალური ველები)
json
{
"event_id": "e_9f2",  "ts": "2025-10-23T17:41:26Z",  "user_id": "u_123",  "market": "DE",  "brand": "X",  "game": {"id":"g_77", "provider":"PragmaticPlay", "type":"slot"},  "bet": {"amount_minor": 100, "currency":"EUR"},  "win": {"amount_minor": 250, "multiplier":2. 5},  "round": {"id":"r_abc","status":"ended"},  "device": {"platform":"mobile","asn":"mno"},  "trace_id": "t_…"
}ტრანსპორტი - Kafka/HTTP, idempotent დამუშავება (dedupe 'event _ id'), პროვაიდერის/თამაშის კარიბჭის ხელმოწერა (HMAC).
4) ტურნირების წესები და ამოცანების დიზაინერი
დეკლარაციული სქემა (მაგალითი YAML):yaml id: t_october_sprint window: {start: 2025-10-25T18:00Z, end: 2025-10-25T19:00Z, tz: Europe/Kyiv}
scope:
markets: [DE, SE]
providers: [PragmaticPlay, Hacksaw]
scoring:
formula: "points = min(win. amount/bet. amount, 50) 100" # ფაქტორის გამოყენებით min _ bet _ minor: 50 eligible _ games: ["g _"]
leaderboard:
ტიპი: „best _ n _ rounds“ # შეაჯამეთ საუკეთესო N რაუნდი n: 20 tiebreaker: [„highest _ single _ multiplier““, earliest _ finish _ ts“]
rewards:
pool: {currency: EUR, total_minor: 1000000}
distribution: „ladder“ # კიბე, ტოპ 100 anti _ abuse:
min_round_duration_ms: 800 max_rps_per_user: 0. 5 exclude_asn_categories: ["hosting", "proxy"]yaml mission_id: m_halloween steps:
- id: s1 goal: {type: "spin_count", game_type: "slot", count: 50}
reward: {type: "freespins", value: 10, game: "g_66"}
- id: s2 goal: {type: "win_multiplier", min: 10}
reward: {type:"bonus", amount_minor: 500}
completion_reward: {type: "points", amount: 1000}5) შეფასებები და გაანგარიშების ალგორითმები
ძირითადი მოდელები
ქულების ჯამი: წრეში ხაზოვანი/ლოგარითმული/ქუდი.
საუკეთესო N რაუნდი: ამცირებს „ანაზღაურებას“, ინარჩუნებს „სპრინტის“ დინამიკას.
მაქსიმალური ფაქტორი (xWin): ნორმალიზდება ვალუტა და განაკვეთები.
MMR/სარეიტინგო სისტემა: ELO მსგავსია PvP/მეგობრული კონკურენციის ცხრილებისთვის.
ტაი-ბრეიკი
1. 'highest _ single _ single _ multiplier' (2) 'fewest _ rounds' (3) 'earliest _ finish _ finish _ ts' (4) 'user _ id' ლექსიკოგრაფიულად (დაფიქსირებულია წესებში).
პროდუქტიულობა
შეინახეთ ტოპ K (მაგალითად, 10k) Redis Sorted Set 'ZADD key score member' - ში.
„საუკეთესო N რაუნდისთვის“: შეინახეთ უახლესი საუკეთესო N min-heap მომხმარებლისთვის და თანხა, განაახლეთ „ფრენაზე“.
პერიოდულად snapshot (ყოველ 30-60 წმ) OLTP/ობიექტში.
6) ჯილდოები და გადახდები
ჯილდოს ტიპები: cash/bonus/უფასო spins/points/საგნები/ბილეთები.
წესები:- გაცემა მხოლოდ დასრულების შემდეგ (გასაჩივრების ფანჯარა 5-10 წუთი).
- ყველა გადახდა - Rewards Service Wallet (ledger) საშუალებით: double-entry, imempotence 'reward _ id'.
- მისიების შუალედური ეტაპისთვის - „რბილი“ ჯილდოს (FS/points) გაცემა, cash - ჯაჭვის ბოლოს.
- KUS/საპასუხისმგებლო თამაში: ანგარიშის დაბლოკვისას - პრიზის შენარჩუნება/გაყინვა შემოწმებამდე.
- Fixed ladder: წინასწარ განსაზღვრული ნაბიჯები (პირველი ადგილი 30%, მე -2 20%,...).
- Proportional: წილი აუზიდან ქულებზე, მაგრამ cap- დან ადგილზე.
- Ticket-based: მისიები იძლევა „ბილეთებს“, ბილეთების გათამაშებას (გამჭვირვალე RNG).
7) ანტი-აბიუსი, პატიოსნება და შესაბამისობა
შეზღუდვის ფილტრები: min კურსი/რაუნდის ხანგრძლივობა, გამონაკლისი „0-bet“, განმეორებითი ret-tresh, „მიკრო განაკვეთები“ კონვეიერში.
Bot სიგნალები: Headless-UA, არანორმალური სიხშირე, არანორმალურად სტაბილური RPS, მარიონეტული ASN - ფარული ჩელენჯები/ქულების გაყინვა.
Dedup/idempotence: მოვლენები 'event _ id', დარიცხვა 'score _ id'.
Audit trail: ლიდერის სურათები, seed RNG (ticket გათამაშებისთვის), წესების ვერსია, გამოთვლების ჰაში.
იურიდიული: წესები/შეზღუდვები ბაზრებზე, ასაკზე, თვითშეფასებაზე.
8) ტურნირების ეკონომიკა
Budget guardrails: აუზის ზედა საზღვარი + დინამიური „safety valve“ (გადახურების დროს შუალედური პრემიების შემცირება).
ელასტიურობა: ჯილდოს შეცვლა points/FS ნაცვლად cash, ზღვრის შესანარჩუნებლად.
ანაზღაურების კოეფიციენტები: საპრიზო ფონდი/შემოსავალი ტურნირის თამაშების სეგმენტიდან; ტარგეტი 8-15%.
გამთენიისას სიმულატორი: ისტორიული მოვლენების პროგნოზი, გადახდის/მონაწილეობის პროგნოზი.
9) API კონტრაქტები (გამარტივებული)
აქტიური ტურნირების/მისიების მიღება
http
GET /v1/contests? market=DE&brand=X
→ 200 [{"id":"t_october_sprint","start":"…","end":"…","type":"xwin","status":"live"}]თამაშის მოვლენა (ingest)
http
POST /v1/events
{"event_id":"e_9f2", "...": "..."}
→ 202 {"accepted":true}ლიდერი (ტოპ K და მომხმარებლის პოზიცია)
http
GET /v1/leaderboards/t_october_sprint? top=100&me=u_123
→ 200 {"top":[{"pos":1,"user":"u_9","score":18400},...],    "me":{"pos":342,"score":5600,"delta":+200}}მისიის პროგრესი და ჯილდო
http
GET /v1/missions/m_halloween/progress? user=u_123
→ 200 {"steps":[{"id":"s1","done":true},{"id":"s2","done":false}],"reward_ready":true}
POST /v1/rewards/claim
{"context":"mission","id":"m_halloween","step":"s1"}
→ 201 {"status":"granted","reward_id":"rw_77"}10) შენახვა და სკალირება
ცხელი გზა: Redis (Sorted Sets/Hash) ზედა და წინსვლისთვის; TTL „ხმაურიან“ გასაღებებზე, შარდვა 'კონკურსზე _ id'.
სიმართლე: OLTP (Postgres/MySQL) - ქულების/პროგრესის/გადახდების ფაქტები (WORM სურათები).
რიგები: კაფკა - მოვლენების ნაკადი; Consumer ჯგუფები რეგიონების/ბრენდების მიხედვით.
ქეში: მოკლე TTL 1-5 გვ; stale-while-revalidate საზოგადოებრივი ტოპებისთვის (CDN- ის საშუალებით).
WebSocket: ცალკეული მტევანი/აუზი რეალტიმისთვის, ბატკანი და საბინაო-ლიმიტი შეტყობინებები.
11) დაკვირვება და ხარისხის კონტროლი
SLI/SLO:- `leaderboard_update_latency_p95 ≤ 250мс`
- `events_ingest_success ≥ 99. 9%`
- `rewards_grant_success ≥ 99. 9%`
- `ws_push_rtt_p95 ≤ 120мс`
- საჩივრები უსამართლობის შესახებ <0. მონაწილეთა 5%.
- ღონისძიებების/მონაწილეთა რაოდენობა, უნიკალური მოთამაშეები, განაწილება განაკვეთი/თამაშები, საშუალო ფაქტორი; 'გრანტი _ errors', 'dedupe _ hits'.
- Traces: ingest - rules - score - LB განახლება - reward; ჭდეები 'contest _ id', 'rule _ id'.
- Logs: JSON 'trace _ id', აკრძალვა PII; WORM აუდიტისთვის.
12) ინციდენტები და runbook 'და (შემოკლებით)
A. ლიდერის ჩამორჩენა (lag> 2s)
მოქმედებები: კაფკას მომხმარებლების გაზრდა, პარტიული „ცხელი გასაღების“ შემცირება, საბრძოლო განახლების ჩათვლით.
დროებითი: გაყინეთ რეალითი ანიმაციები, აჩვენეთ „~ 1-2 წმ შეფერხება“.
B. შეცდომები ჯილდოს გაცემისთვის
მოქმედებები: შეაჩერეთ ახალი „გრანტი“, შეამოწმეთ სნაიპშოტი, შეარჩიეთ 'გრანტის' იდემპოტენტურად; სტატუსის გაფართოება ლობში.
C. ASN (proxy ASN)
მოქმედებები: შეზღუდვის გაძლიერება, შეიტანეთ უხილავი გამოწვევა, დროებით არ გაითვალისწინოთ ქულები საეჭვო სესიებისთვის, პოსტ-გადამოწმება.
13) UX და ლოკალიზაცია
რეალური დრო: „ცოცხალი“ ინდიკატორი, წერტილების გლუვი დელტა, პოზიცია და მანძილი შემდეგ ადგილამდე.
გამჭვირვალე წესები: ფორმულა/ტაიმ-შესვენება/შეზღუდვები.
ნოტიფიკაციები: „დარჩა 5 წუთი“, „თქვენ ტოპ 50-ში ხართ“, „ჯილდო ხელმისაწვდომია“.
ლოკალიზაცია/იურიდიული ტექსტები: ბაზრებზე, დროის ზონებში (ევროპა/კიევი და მონაწილეთა იდაყვის).
14) უსაფრთხოება და კონფიდენციალურობა
მოთამაშეთა ფსევდონიმები საზოგადოებრივ ტოპებზე; PII ნაგულისხმევი დამალვა.
ვებჰუკების/მოვლენების ხელმოწერები, mTLS; დაცვა „ქეშის წერტილიდან“ edge.
Rate-limit API, დაცვა ქეშისგან, კონტროლი 'idempotency _ key'.
GDPR: მოვლენების შენახვის დრო, მოცილების უფლება (ანონიმიზაცია) აუდიტის დაზიანების გარეშე.
15) ტესტირება და სიმულაცია
ისტორიული მოვლენების რეპლიკა წესებისა და ეკონომიკის ნამდვილობისთვის.
დატვირთვა: bursts 30-120 დაწყებამდე; soak 2-4
Property-based: ინვარიანტები („გაცემული ჯილდოების ჯამი - ბიუჯეტი“, „ტაი-ბრეიკი დეტერმინირებულია“).
A/B: სათვალეების სხვადასხვა ფორმულები, კიბეების სიღრმე, მისიების ფორმატი.
16) წარმოების მზადყოფნის სიის სია
- დეკლარაციული წესები (ვერსიები, ხელმოწერები), ეკონომიკის სიმულატორი.
- Idempotention: 'event _ id', 'score _ id', 'reward _ id'; Inbox/Outbox.
- ტაი-შესვენება დაფიქსირდა წესებში, დახარისხების დეტერმინიზმი.
- ლიდერები: ტოპ K Redis + snaphots; ანტი-ქარიშხალი (jitter, coalescing).
- Anti-abuse: eligibility, bots/ASN, velocity-limites.
- Rewards-Wallet double-entry- ის საშუალებით; KYC ჩეკი cash- ის წინ.
- დაკვირვება: SLI/SLO, დაშბორდები, ალერტები; WORM აუდიტი.
- DR/Failover: multi-AZ, bacaps/restore, „freeze & finalize“ სცენარი.
- ლოკალიზაცია, ლიცენზია, საჯარო წესები და კონსულტაცია.
- Runbook 'და საბაზო/შეცდომების შეცდომები ბოტების, საკომუნიკაციო შაბლონების შესახებ.
რეზიუმე
ტურნირებისა და მისიების წარმატებული მოდული არის ღონისძიების ავტობუსი + დეტერმინისტული წესები + სწრაფი ლიდერები + უსაფრთხო გადახდები. დაამატეთ მკაცრი ტაილანდური შესვენება, ანტი-აბიუსი, ეკონომიკის სიმულატორი და SLO დაკვირვება, გამართეთ ყველა ოპერაცია idempotent და აუდიტი - და მიიღეთ ინსტრუმენტი, რომელიც ზრდის მონაწილეობას და შემოსავალს მოთამაშეებთან, რეგულატორებთან და დამხმარე გუნდთან დავის გარეშე.
