토너먼트 및 미션 모듈: 이벤트, 등급, 수상
1) 비즈니스 목표 및 활동 유형
목표: 성장 유지 (D1/D7), ARPPU, 세션 깊이 증가, 새로운 게임 및 시장 홍보.
형식:- 토너먼트: 포인트/승/승수, 스프린트 (30-60 분), 주간, 계절별.
- 미션/퀘스트: 진행 상황 및 무대 보상과 함께 작업 시퀀스 (N 스핀 재생, X 승리, Y 제공 업체 사용).
- 리더 보드: 전 세계, 시장/게임/베팅, 개인 (친구/VIP).
- 잭팟/스튜디오 등급: "금주의 최고 제공 업체", "승수 찾기".
KPI: 활동적인 청중의 12-25% 이상, 프로모션 10-20% 의 수입 비율, 불만 <0. 참가자의 5%, 상금 계획 발행.
2) 아키텍처 및 데이터 흐름
구성 요소
1. 이벤트 게이트웨이 → 게이트웨이/제공 업체의 게임 이벤트 (스핀, 베팅, 승리, 라운드 _ 종료) 수신.
2. 규칙 엔진 → 토너먼트/미션 규칙, 어워드 포인트 (demempotent) 의 이벤트와 일치합니다.
3. Leaderboard Service → 포인트를 집계하고 상단/슬라이스를 저장하며 정렬 및 타이 브레이크를 지원합니다.
4. 진행 서비스 (미션) → 작업/단계의 상태, 중간 수상 발행.
5. 보상 서비스 → 결제 및 안전한 지불 (지갑: 현금/보너스/fs/포인트).
6. Admin/Studio UI → 생성, 계획, 경제 미리보기, 시뮬레이션.
7. 리더십 보드 업데이트, 진행 상황, 알림의 실시간/WS → 게시.
8. 남용 방지 → 제한, 위험 신호, 사기 방지/봇 관리자와의 통합.
9. 핫탑을위한 저장/캐시 → KV/Redis, 사실을위한 OLTP, 분석을위한 DWH.
스트림 (e2e)
'게임 _ 이벤트 → 게이트웨이 → 규칙 _ 일치 → 리더 보드 _ 업데이트 → (진행 _ 업데이트) → 알림 → _ at _ close → 지갑 _ 게시물'
3) 이벤트 모델 (최소 필드)
json
{
"이벤트 _ id": "e _ 9f2", "ts": "2025-10-23T17: 41: 26Z", "user _ id": "u _ 123", "market": "DE", "brand": "X," 게임 ": {" id ":" g _ 77 "," 제공자 "," PragmaticPlay "유형" "bet": {"amount _ minor": 100, "currency": "EUR"}, "win": {"amount _ minor": 250, "multiple": 2.  5}, "round": {"id": "r _ abc", "상태": "ended"} ", 장치": {"platform": "mobile", "ask": "mno"}, "trace _ id": "t _"...
}전송 - Kafka/TH, demempotent 처리 ('이벤트 _ id' 에 의한 dedupe), 공급자/게임 게이트웨이 서명 (HMAC).
4) 토너먼트 규칙 및 작업 디자이너
선언 체계 (YAML 예):yaml id: t _ october _ sprint 창: {시작: 2025-10-25T18: 00Z, 끝: 2025-10-25T19: 00Z, tz: 유럽/키예프}
범위:
시장: [DE, SE]
공급자: [PragmaticPlay, Hacksaw]
득점:
공식: "포인트 = 분 (승리. 양/내기. 양, 50) 100 "# 곱하기 min _ bet _ minor: 50 적격 _ 게임: [" g _ "]
리더 보드:
유형: "best _ n _ rounds" # 최고의 N 라운드 n: 20 순위 결정: ["highest _ single _ multiply", "father _ finish _ ts"]
보상:
풀장: {통화: EUR, 총 _ 마이너: 1000000}
배포: "사다리" # 사다리, 상위 100 대 남용 방지:
min _ round _ guidence _ ms: 800 max _ rps _ per _ user: 0. (PHP 3 = 3.0.6, PHP 4)yaml mission _ id: m _ halloween 단계:
-id: s1 목표: {유형: "spin _ count", game _ style: "slot", count: 50}
보상: {유형: "freespins", 값: 10, 게임: "g _ 66"}
-id: s2 목표: {유형: "win _ multiply", min: 10}
보상: {유형: "보너스", amount _ minor: 500}
(PHP 3 = 3.0.6, PHP 4)5) 등급 및 계산 알고리즘
주요 모델
총점: 라운드 당 캡이있는 선형/로그/
최고의 N 라운드: Pay-to-grind를 낮추고 스프린트 운동량을 유지합니다.
최대 승수 (xWin): 통화 및 요율을 정규화합니다.
MMR/등급 시스템: PvP/친화적 인 경쟁 테이블 용 ELO와 유사합니다.
타이 브레이크
1. '최고 _ single _ multiply' → 2) 'feest _ rounds' → 3) 'father _ finish _ ts' → 4) 'user _ id' (규칙에 고정).
성능
Redis Sorted Set 'ZADD 키 스코어 멤버' 에 상위 K (예: 10k) 를 저장하십시오.
"최고의 N 라운드" 의 경우: 사용자 당 최신 N 및 최고 금액의 최소 힙을 즉시 업데이트하십시오.
OLTP/오브젝트에서 주기적으로 스냅 샷 (30-60 초마다).
6) 보상 및 지불
보너스 유형: 현금/보너스/무료 스핀/포인트/항목/티켓.
규칙:- 마무리 후 발행 (항소 창 5-10 분).
- 모든 지불은 Rewards Service → Wallet (원장) 을 통해 이루어집니다: 이중 입력, 'reward _ id' 에 의한 demempotence.
- 체인 끝에서 "소프트" 어워드 (FS/포인트), 현금 발행 등 중간 단계의 미션 단계에 대해.
- CCM/책임 게임: 계정을 차단할 때 확인 될 때까지 상품을 보유/동결하십시오.
- 고정 사다리: 사전 정의 된 단계 (1 위 30%, 2 위 20%,...).
- 비례: 포인트의 일부이지만 그 자리에 캡이 있습니다.
- 티켓 기반: 미션은 티켓을 그리는 "티켓" 을 제공합니다 (투명한 RNG).
7) 학대 방지, 정직 및 규정 준수
적격성 필터: 최소 베팅/라운드 지속 시간, "0-bet" 제외, 반복 재 균열, 파이프 라인의 "마이크로 베팅".
봇 신호: 헤드리스 -UA, 비정상적인 주파수, 비정상적으로 안정적인 RPS, 프록시 ASN → 숨겨진 도전 과제/동결 안경.
Dedup/idempotency: '이벤트 _ id' 에 의한 이벤트, 'score _ id' 에 의한 이벤트.
감사 트레일: 리더 보드 샷, 시드 RNG (티켓 추첨 용), 규칙 버전, 계산 해시.
법적: 시장, 연령, 자기 배제에 대한 규칙/제한.
8) 토너먼트 경제
예산 가드 레일: 풀 + 동적 "안전 밸브" 의 상한 (과열 시 중간 보너스 감소).
탄성: 보상을 현금 대신 포인트/FS로 전환하여 마진을 유지합니다.
회수 비율: 토너먼트 게임 부문의 상금 풀/영수증; 목표 8-15%.
관리자 패널의 시뮬레이터: 과거 이벤트 실행 → 지불/참여 예측.
9) API 계약 (단순화)
활성 토너먼트/미션 받기
http
GET/v1/콘테스트? market = DE & brand = X
→ 200 [{"id": "t _ october _ sprint", "시작": "...," 끝 ":"..., "유형": "xwin", "상태": "live"}]게임 이벤트 (가장 인상적인)
http
POST/v1/이벤트
{"이벤트 _ id": "e _ 9f2", "...": "..."}
→ 202 {"수락": 참}리드 보드 (상위 K 및 사용자 위치)
http
GET/v1/리더 보드/t _ october _ sprint? 최고 = 100 & me = u _ 123
→ 200 {"top": [{"pos": 1, "user": "u _ 9", "score": 18400},...], "me": {"pos": 342, "score": 5600, "델타": + 200}미션 진행 및 보상
http
GET/v1/missions/m _ halloween/progress? 사용자 = u _ 123
→ 200 {"단계": [{"id": "s1", "완료": 참}, {"id": "s2", "완료": 거짓}], "보상 _ ready": 참}
POST/v1/보상/클레임
{"컨텍스트": "미션", "id": "m _ halloween", "단계": "s1"}
→ 201 {"상태": "부여 됨", "보상 _ id": "rw _ 77"}10) 저장 및 스케일링
뜨거운 길: 상단과 진행을위한 Redis (정렬 세트/해시); "콘테스트 _ id" 로 표시되는 "잡음" 키에 대한 TTL.
사실: OLTP (Postgres/MySQL) -포인트/진행/지불 사실 (WORM 스냅 샷).
대기열: Kafka-이벤트 흐름; 지역/브랜드 별 소비자 그룹.
캐시: 짧은 TTL 1-5 초; CDN을 통해 공개 정상에 대한 오래된 상태.
웹 소켓: 실시간, 배치 메일 및 요율 제한 메시지를위한 별도의 클러스터/풀.
11) 관찰 및 품질 관리
SLI/SLO:- '리더 보드 _ 업데이트 _ latency _ p95
- (PHP 3 = 3.0.6, PHP 4) 9%`
- 'rewards _ grant _ success 9%`
- 'ws _ push _ rtt _ p95
- 불의의 불만 <0. 참가자의 5%.
- 이벤트/참가자, 고유 한 플레이어, 베팅/게임 별 배포, 평균 승수; 'grant _ ormers', 'dedupe _ hits'.
- 트레일: 섭취 → 규칙 → 점수 → LB 업데이트 → 보상; 'content _ id', 'rule _ id' 태그.
- 로그: 'trace _ id' 가있는 JSON, PII 금지; 감사를위한 WORM.
12) 사건과 런북 '및 (약칭)
A. 리더 보드 지연 (지연> 2 초)
동작: Kafka 소비자를 늘리고, "핫 키" (재분할) 를 줄이고, 배치 업데이트를 가능하게합니다.
임시: 실시간 애니메이션 동결, "~ 1-2 초 지연" 표시
B. 어워드 오류
행동: 새로운 '보조금' 을 중지하고, 스냅 샷으로 확인하고, '보조금' 을 엄청나게 재생하십시오. 로비의 상태 업데이트.
C. 남용 스파이크 (프록시 ASN)
행동: 자격 강화, 보이지 않는 도전 가능, 모호한 세션에 대한 포인트 무시, 검증 후.
13) UX 및 현지화
실시간: "실시간" 표시기, 포인트의 부드러운 델타, 다음 장소까지의 위치 및 거리.
투명한 규칙: 공식/순위 결정/제한에 대한 액세스.
알림: "5 분 남음", "당신은 상위 50 위에 있습니다", "보상이 가능합니다".
현지화/법률 텍스트: 시장, 시간대 (유럽/키예프 및 참가자 로케일).
14) 보안 및 개인 정보 보호
공개 탑에서 플레이어 별명; PII를 기본적으로 숨깁니다.
웹 후크/이벤트, mTLS의 서명; 가장자리의 "캐시 독" 으로부터 보호합니다.
속도 제한 API, 캐시 베이스팅 보호, 'idempotency _ key' 제어.
GDPR: 이벤트 유지, 감사를 손상시키지 않고 삭제 (익명화) 할 권리.
15) 테스트 및 시뮬레이션
규칙과 경제의 검증을위한 역사적 사건의 재생.
로드: 시작하기 전에 30-120 초가 파열됩니다. 2-4 시간을 담그십시오.
부동산 기반: 불변량 ("발행 된 보너스 금액은 예산을", "타이 브레이크 결정").
A/B: 다른 점수 공식, 래더 깊이, 미션 형식.
16) 생산 준비 점검표
- 선언 규칙 (버전, 서명), 이코노미 시뮬레이터.
- 이념성: '이벤트 _ id', '점수 _ id', '보상 _ id'; 받은 편지함/편지함.
- 타이 브레이크는 규칙에 고정되어 결정론을 정렬합니다.
- 리더 보드: Redis + 스냅 샷에서 최고 K; 폭풍 방지 (지터, 합병).
- 남용 방지: 자격, 봇/ASN, 속도 제한.
- 이중 입력을 통한 보상 → 지갑; 현금 전에 KYC 확인.
- 관찰 가능성: SLI/SLO, 대시 보드, 경고; WORM 감사.
- DR/Failover: multi-AZ, 백업/복원, "동결 및 마무리" 스크립트.
- 현지화, 라이센스, 공공 규칙 및 동의.
- 런북 '및 지연/오류시 봇은 통신 패턴을 부여합니다.
요약 다시 시작
토너먼트 및 미션의 성공적인 모듈은 이벤트 버스 + 결정 론적 규칙 + 빠른 리더 보드 + 안전한 지불금입니다. 엄격한 순위 결정, 남용 방지, 경제 시뮬레이터 및 SLO 관찰 성을 추가하고 모든 운영을 엄청나게 감사 할 수 있으며 플레이어, 규제 기관 및 지원 팀과 논쟁하지 않고 참여와 수익을 높이는 도구를 얻을 수 있습니다.
