이벤트 및 보상 자동화-규칙 및 웹 후크
게임 화는 두 가지 "모터" 를 기반으로합니다: 이벤트 (사용자가 수행 한 작업) 와 규칙 (해당 작업). 이를 위해서는 신뢰할 수있는 이벤트 버스, 규칙 엔진, 배송/보너스 메커니즘 및 사기에 대한 엄격한 보호가 필요합니다. 다음은 실제 아키텍처, 템플릿 및 체크리스트입니다.
1) 이벤트 → 규칙 → 보상 흐름 아키텍처
1. Ingest (이벤트 입력): SDK/web, 결제/게임 제공 업체의 서버 웹 후크 → API 게이트웨이 → 큐/버스 (Kafka/Rabbit/Cloud Pub/Sub).
2. 정규화 기: 검증, 농축 (geo, 장치, payer _ flag), 체계 버전.
3. 규칙 엔진: 점수/XP, 미션/퀘스트 확인, 보상/알림 트리거.
4. 보상 오케스트레이터: 보상, 예산 확인, RG/KYC 게이트 계산, "발행 작업" 작성, 로깅.
5. 지불/보너스 서비스: 캐시/보너스 캐시/프리스핀/쿠폰, 외부 웹 후크 (지갑, 공급자).
6. 알림: 주파수 제한이있는 푸시/인 앱/이메일/인스턴트 메신저.
7. 스토리지/분석: 원시 이벤트, 상점, A/B, 경고.
8. 사기 방지/RG: 마우스 가드, 휴리스틱/ML, 보류 및 리뷰 큰 상.
2) 이벤트 모델 (최소 세트)
json
{
"이벤트 _ id": "d9e8-... -5c2", "이벤트 _ 네임": "bet", "버전": "1. 2. 0, "ts": "2025-10-24T11: 37: 21Z", "user": {
"id": "u _ 123", "geo": "TR", "플랫폼": "android", "payer _ flag": 참, "risk _ flags": ["vp _ nightly"]
}, "컨텍스트": {
"세션 _ id": "s _ 789", "장치 _ fp": "fp _...", "ip": "203. 0. 113. 24"
}, "페이로드": {
"game _ id": "slot _ wolf", "bet": 0. 5, "승리": 1. 25, "통화": "EUR", "제공자": "GameCo"
}
}
차이나 프로그램은 '로그인', '세션 _ 스타트/종료', '베팅/스핀', '승리', '예금', '철회 _ 요청', 'kyc _ state _ changed', 'mission _ view/join/progress/complete', '토너먼트 _ join/score/budate/rewent', ',' rg _ event '.
3) 규칙 엔진: 논리를 설명하는 방법
개념: 규칙 (if/the), 세그먼트, 시간 창, 마우스 피스, 우선 순위, 버전.
선언적 규칙 (YAML 스타일) 의 예:다음과 같은 경우 yaml rule _ id: r _ points _ winmult _ v2
이벤트 _ 이름: 베팅 필터:
- 페이로드. 내기> = 0. 2
-사용자. ["TR", "BR", "PE" 의 지오]
- 이제 "2025-11-01" 과 "2025-11-30" 사이
점수:
공식: "바닥 ((페이로드. 승리/페이로드. 내기) 3) "
모자:
_ bet 당: 분당 50: 일당 200:1500 보상 _ 트리거:
(PHP 3 = 3.0.6, P
임계 값: [100, 300, 800]
보상: [{유형: "fs", 값: 10}, {유형: "bonus _ cash", 값: 2}, {유형: "loot", 희귀: "rade"}]
가드 레일:
kyc _ min _ 레벨: 2 rg _ limites _ ok: 실제 예산 _ pool: "nov _ season"
예산 _ soft _ cap: 80000 메타:
버전: "2. 0"
실험: "scoring _ ab _ 2025w45"
4) 웹 후크: 서버 서버 통합
4. 1. 아웃 바운드 웹 후크 (귀하에서 공급자/지갑까지)
방법: 'POST https ://partner. 예/지불 '
우선: 'X-Signature: HMAC-ș256 (비밀, 본문)' + 'X-Request-ID' (deimempotency).
Retrai: 지수 백오프, 'max _ retries = 8', 지터, DLQ.
이데올로기: 동일한 'X-Request-ID' → 파트너가 동일한 'payout _ id/상태' 로 응답해야합니다.
페이로드의 예:json
{
"요청 _ id": "rid _ 7f5"..., "user _ id": "u _ 123", "보상": {"유형": "현금", "금액": 10. 00, "통화": "EUR"}, "이유": "milestone _ 300 _ points", "kyc _ level": 2, "제약": {"watering": 0 ", manury _ at": "2025-12-01T00: 00: 00Z"}
}
4. 2. 들어오는 웹 후크 (당신에게)
IP/MTLS 목록 만 허용하고 HMAC 및 서명 수명을 확인하십시오 ('X-Timestamp', λ5 분).
감사 상점 (WORM) 에 "원시" 본체 + 헤더를 저장하십시오.
이중/반복 → 로그에 대한 demempotency 키를 확인하십시오.
5) 신뢰성: 이중 지불없이 "짝수" 흐름
적어도 한 번은 섭취 + demempotent 핸들러 → 금 본위제입니다.
이념성 키: 점수에 대한 '해시 (이벤트 _ id + user _ id + rule _ id)'; 보상 'reward _ task _ id' 를 발행하기위한 별도의 키.
정확히 한 번의 의미론은 운송이 아니라 논리적으로 현실적입니다 (dempotence를 통해).
이벤트 순서: '이벤트 _ ts' 및 'ingest _ ts' 저장; 창 재정렬 (예: 60 초) 을 사용하고 'user _ id' 키로 큐에서 재생합니다.
데드 레터 큐 (DLQ):- 영구 오류가있는 메시지를 작성합니다 (임시 체계가 통과되지 않았으며 서명이 유효하지 않으며 예산이 종료됨).
- 재 프로세스/드롭/수정 스키마 버튼이있는 DLQ 검토 서비스.
6) 예산 및 마진 보호
예산 풀: 'nov _ season', 'daily _ sprint', 'vip _ weekend'.
Quotas: 소프트/하드 캡, "회로 차단기" - 예산의 90% 에 도달하면 큰 상금을 보유 상태로 이전합니다.
단일 비용: '활동/지불 당 상금 및 보너스 비용', 순 상승.
우선 순위: RG 및 규정 준수는 프로모션보다 중요합니다. 충돌시 보상이 연기됩니다.
예산 확인 예 (SQL 스케치):sql
SELECT pool _ id, SUM (금액) AS 지출, 예산 AS 제한, SUM (금액 )/예산 AS 채우기
(PHP 3 = 3.06
WHER pool _ id =: 풀 AND 날짜 (ts) = 현재 _ 날짜
GROUP By pool _ id, 예산;
7) RG/KYC/Geo gates (플레이어 안전 및 규정 준수)
KYC: 캐시/큰 상품에 대한 L2 최소; 프리 스핀은 L1에서 유효합니다.
RG: 예금 제한, 자체 배제, 쿨오프 → 어워드를 확인하면 제한이 해제 될 때까지 동결됩니다.
Geo: 각 수상 규칙/풀에 대한 허용 국가 목록.
임계 값 경고: 개별 계정에서 급격한 성장이 "거의 도달" = 보유 및 검토 이유.
8) 사기 방지 규칙 및 원격 측정
요율/분/시간/일 포인트 한도, 베팅의 최소 차이, "이상적인" 패턴 금지.
기술 신호: 헤드리스, 반복 장치 _ fp, 프록시 서브넷.
Anomalies: 99 백분위 수의 "포인트/베팅" 및 "포인트/분" -긴 "꼬리".
최고 수상자에 대한 홀드 앤 리뷰: 자동 KYC 체크 + 수동 검토.
9) 모니터링, 메트릭 및 경고
SLO/SLA:- 섭취 p95 λ250 ms; 규칙 처리 p95 λ150 ms; 리더십 보드 업데이트 보너스 문제는 60 초입니다.
- 오류 예산 <0. 1% 이벤트/일.
- 실험에 대한 SRM (트래픽 왜곡), DLQ 성장, HMAC 검증 시그니처 드롭, 예산 오버런, demotent 복제 서지에 대한 SRM.
- 사건/s, 지연, 내결함;
- 깔때기: 이벤트 → 규칙 → 보상 _ task → 보상 _ 발행;
- 비용: 활동당 상/보너스, 순 상승;
- 품질: 사기 플래그, KYC 블록, RG 트리거.
10) 이주 및 이주
각 규칙은 다음과 같습니다 ('규칙. 버전 ').
새 버전 없이는 활성 규칙을 편집할 수 없습니다. ficheflag 및 "부드러운 가열" (10% → 50% → 100%) 을 사용하십시오.
스키마 레지스트리를 통한 이벤트 다이어그램; 호환되지 않는 변경-주요 버전 만 해당됩니다.
11) A/B 자동화 테스트 (짧은)
단위 - 사용자; 끈적 끈적한 할당; 층화 (지불 자/지오/플랫폼).
간섭을 제거하기 위해 별도의 리드 보드 또는 포인트 정규화.
기본: 참여 _ net, 완료, Net ARPPU; 가드 레일: 불만/1k, 사기 플래그, RG 트리거.
분산 감소를 위해 CUPED 및 공변량.
12) 예: 규칙에서 문제까지
12. 1. 마이크로 보상 진행 트리거
json
{
"유형": "보상 _ 작업. "" 보상 _ task _ id ":" rt _ 456 "," user _ id ":" u _ 123 "," original ": {" rule _ id ":" r _ points _ winmult _ v2 "," 임계 값 ": 300}," 보상 ": {" 유형: "보너스 _ 현금", 금액 ": EUR", "15}," pool _ id ":" nov _ season "," 상태 ":" 보류 중 "," 생성 된 _ at ":" 2025-10-24T11: 38: 30Z "
}
12. 2. 지갑을위한 나가는 웹 후크
POST/지갑/크레딧
X-Request-ID: rid _ 7f5...
X- 타임 스탬프: 1730061700
X- 시그니처: sha256 = 7b9a...
{"user _ id": "u _ 123", "양": 2. 00, "통화": "EUR", "이유": "규칙: r _ points _ winmult _ v2"}
성공 → '보상 _ task' = '성공' 및 '보상 _ ledger' 에 기록.
실패 (5xx/타임 아웃) → 동일한 'X-Request-ID' 로 다시 트레이합니다.
딥 (4xx) → DLQ + 수동 구문 분석.
13) 금고 및 테이블 (스케치)
sql
-어워드 잡지
CREATE TABLE 보상 _ ledger (
id BIGSERIAL PRIMARY KEY, reward _ task _ id TEXT UNIQue, user _ id TEXT, pool _ id TEXT, 유형 TEXT, 값 NUMERIC (18,2), 통화 TEXT, 비용 NUMERIC (18,2) DEFAULT 0, -реалнаесоли( PHP 3 = 3.0.6, PHP 4)
);
-불확실성
CREATE UNIQUE INDEX uniq _ reward _ task ON reward _ ledger (reward _ task _ id);
-예산
CREATE TABLE 보상 _ 예산 (
pool _ id TEXT PRIMARY KEY, 예산 NUMERIC (18,2), NUMERIC (18,2), 기간 DAT
);
14) 보안 및 개인 정보 보호
HMAC 서명, MTLS, 허용 목록 IP.
운송/휴식, 키 회전, 금고의 비밀 암호화.
페이로드에서 데이터 최소화 (PII 별도, 토큰 링크, TTL).
감사 로그 불변성 (WORM).
보존 및 처분 정책 (잊을 권리, 중복 제거 안전).
15) 출시 점검표
- 이벤트 스키마 및 레지스트리, 웹 후크 계약 (서명, TTL).
- 대기열, 배경, DLQ, demempotent 처리기.
- KYC/RG 게이트 규칙의 캡/가드 레일.
- 예산 풀, 회로 차단기, 오버플로 경고.
- SLO 대시 보드 + 보상 깔때기.
- A/B 필터 및 SRM 모니터링.
- 사건의 런북 (재생, 동결, 수동 문제).
16) 미니 케이스 (합성)
게임 제공 업체 및 지갑에서 연결된 이벤트; 마우스 가드와의 "승리/베팅" 득점이 포함되었습니다.
Webhooks는 HMAC에 서명하고 최대 8 번의 시도를 재검토하고 DLQ는 2 시간마다 검토합니다.
4 주 동안: 지연 처리 p95 180 ms; DLQ <0,06%; 중복 지불 0; 사기 플래그 -0. 4 pp; 지정된 참여 _ net + 6,3 지수. п.; 상품 및 보너스/액티브 + €0,7.
결론: 현지 예산 풀이있는 새로운 지오로 규칙을 확장합니다.
보상을 자동화하는 것은 "프리스핀으로 푸시를 보내는 것이 아닙니다. "이것은 엔지니어링 시스템입니다. 안정적인 이벤트 전달, 엄격한 규칙 다양성, demempotency 및 서명, 예산 개인, KYC/RG 게이트, 사기 방지 및 모니터링. 이 프레임 워크를 언젠가 구축하면 모든 미션, 토너먼트 및 "전리품 순간" 이 정시에 긍정적 인 효과로 예측 가능하게 작동합니다.