플랫폼 커널 버전을 추적하는 것이 중요한 이유
"플랫폼 코어" 는 무엇이며 버전이 중요한 이유
"핵심" 은 지갑 및 원장, 라운드 베팅/계산, 현금 데스크 (예금/지불), 식별 (KYC/AML/RG), 게임 제공 업체와의 계약 및 청구/보고와 같은 실수가 용서되지 않는 도메인을 의미합니다.
여기의 모든 업데이트는 돈, 규제, 신뢰에 영향을 미 따라서 커널 버전은 "패키지 번호가 아닙니다. json "및 변경 및 책임 관리 도구.
트랙 버전
1. 돈 위험 관리. 우리는 어떤 라운드/지불에 대해 지불 한 코드를 분명히 알고 있습니다. 분쟁을 제거하고 사건 분석 속도를 높입니다.
2. 통합의 상호 운용성. 게임/결제 제공 업체는 계약과 관련이 있습니다. 버전 = 필드, 상태 및 비즈니스 규칙이 동일하다는 것을 보장합니다.
3. 준수 및 감사. 규제 기관은 재현성을 요구합니다. "어떤 구축, 어떤 계획, 어떤 통제. "버전은 증거 기반의 앵커입니다.
4. 다운 타임없이 빠른 릴리스. Versioning을 사용하면 호환되는 변경 및 롤 카나리아를 릴리스 할 수 있습니다.
5. 사건 관리. 롤백/롤 포워드는 태그 아티팩트, 마이그레이션 및 호환성 매트릭스가있을 때 간단합니다.
6. 제품 팀의 투명성. "계약이 체결 될 때까지" 계약이 안정적인 경우, 프론트/마케팅/분석은 놀라지 않고 계획합니다.
버전 정책 (커널 용 SemVer)
우리는 SemVer 'MAJOR를 사용합니다. 미노르. PATCH '+ "스키마 개정" 및 "이벤트 계약 버전":- PATCH (x.y. Z) - API/체계/계산 논리를 변경하지 않고 수정합니다. 롤아웃은 빠르며 롤백은 사소합니다.
- MINOR (x.Y.z) - 호환 가능한 확장: 새로운 "nullable" 필드, 새로운 이벤트, 플래그. "확장 전용" 마이그레이션.
- 메이저 z) - 파괴 변경: 필드/이벤트 제거, 계산 규칙 변경, 새로운 원장 불변량.
또한 수정합니다
'schemaVer' (DB/원장/디렉토리), 'contractVer' (버스 이벤트 및 웹 후크), 'calcVer' (계산/보너스 규칙 엔진).
계약 및 이전 호환성
외부 및 내부 소비자를위한 계약
API/webhooks/이벤트: 버전을 지정합니다 ('/v2/... '), 헤더 (' X-Contract-Version '), 페이로드의' schemaVer '필드.
버스의 이벤트: 'eventVer' 필드, 조용한 금지 (필드 유형의 변경, 상태 의미).
DB: 확장 → 마이그레이션 → 계약 마이그레이션.
"그림자" 로 추가, 변경-신중하게 삭제-
필드 추가-무효화/불이행 만 가능합니다.
의미의 변경은 전환 기간 동안 "오래된" 필드 ('_ 레거시') 의 병렬 게시와 함께 MAJOR에만 있습니다.
삭제 - 삭제되고 원격 측정 후 "다른 사람은 오래된 것을 읽습니다".
스키마 및 데이터 마이그레이션
확장: 열/색인을 추가하고 기존 리더를 터치하지 않고 새 이벤트를 입력하십시오.
Migrate: 백그라운드의 값을 채우거나 다시 계산하고 (배치/온라인) 새로운 장소에 이중 항목 (이중 쓰기) 을 포함합니다.
계약: 독자를 번역하고 다음 MAJOR에서 레거시 지점을 제거하십시오.
도구: 기능 플래그, 섀도우 테이블, 온라인 DDL, 데이터베이스 레벨의 불변 (체크 제약) 및 도메인 아래의 마이그레이션.
정산 버전 지정: 돈, 베팅, 보너스
화폐 계산 논리의 버전 인 'calcVer' 를 별도로 수정하십시오 (요율/보류/결제/VOID, 보너스 및 베팅 규칙).
모든 라운드에서. ',' 지불금을 정산했습니다. ',' 보너스를 완료했습니다. 'calcVer' 를 작성하십시오.
분쟁이 발생하면 이벤트 당시 시행 된 논리를 정확하게 계산하여 계산을 재현 할 수 있습니다.
게임 트래픽/지역/카테고리의 백분율로 'calcVer' 카나리아를 전환하십시오.
버전 지정에 대한 관찰 가능
흔적의 태그: 모든 중요 범위 (내기, 결제, 지불) 에서 'build', 'gitSha', 'semver', 'schemaVer', 'contractVer', 'calcVer'.
버전 별 대시 보드: 오류, 대기 시간, 핀 델타 버전.
"버전 드리프트" 경고: 일부 타이어 소비자가 잘못된 회로를 읽을 때.
안전 및 준수
버전 아티팩트 (이미지, 마이그레이션) 에 서명합니다. 변경 불가능한 레지스트리/버킷에 저장됩니다.
DR/감사: "날짜 T에 있었던 것처럼" (이미지, 버전으로 이동, 데이터베이스 스냅 샷) 환경을 높일 수 있습니다.
AML/RG/KYT 규칙 개정도 버전 (policyVer) 및 해당 응용 프로그램 로그입니다.
출시 절차
1. 계약 검토: 'PATCH/MINOR/MAJOR' 로 표시된 변경 사항 목록은 외부/내부 소비자에게 영향을 미칩니다.
2. 후방 컴파트 테스트: 오래된 클라이언트/이벤트 (계약 테스트) 를 확인하십시오.
3. 카나리아 출시: 트래픽의 1-5%; p95 지표, 오류, 재무 불일치.
4. 레거시 사용 원격 측정: 다른 사람이 'v1' 을 듣고 있는데, 어떤 필드를 읽을 수 있습니까?
5. Comm 패키지: 수명이 다한 이전 버전의 변경 사항, 마이그레이션 방법.
샘플 호환성 행렬 (예)
계약의 예
버전이 포함 된 버스 이벤트:json
{
"이벤트": "라운드. "" eventVer ":" 2. 4 "," schemaVer ":" ledger-3. 1 "," calcVer ":" 지갑 -7. 2, "" 라운드 ":" R-2025-10-17-PRAGM-12 "," 베팅 ": [{" bet ":" b _ 9f2 "," 스테이크 ":" 5. 00 "," 지불 ":" 180. 00 "," 결과 ":" WIN "}]," ts ":" 2025-10-17T14: 23:12. 031Z "," trace ":" tr _ 5f1 "
}
계약 버전의 REST:
GET/v2/지갑/밸런스
X- 계약 버전: 2. 3
반 패턴
"조용한" 변경: MAJOR없이 필드의 유형/의미를 변경합니다.
이중 쓰기없이 한 번의 릴리스에서 데이터 마이그레이션 및 머니 로직을 혼합하
버전 대신 글로벌 플래그 ("그때 행동 한 것" 을 복원 할 수 없음).
계약 테스트 및 스키마 카탈로그 부족.
원격 측정 사용없이 레거시를 삭제하십시오-파트너/대시 보드 중단.
아티팩트/서명이없는 단일 번호 "위키 어딘가" 는 재현 할 수 없습니다.
핵심 버전 징계 점검표
표준
- 버전 제품군: 'semver', 'schemaVer', 'contractVer', 'calcVer', 'policyVer'.
- 기록 및 소유자가있는 데이터 카탈로그.
계약
- 수정 된 엔드 포인트/이벤트, 헤더/버전 필드.
- 날짜와 원격 측정이 포함 된 편차 절차.
이주
- → Migrate → 계약, 듀얼 라이팅, онла
- 데이터베이스 레벨의 그림자 테이블 및 불변.
릴리스
- 카나리아 롤아웃, 호환성 매트릭스, 롤백 계획.
- 서명 된 이미지/마이그레이션, 변경 불가능한 아티팩트.
관찰 가능
- 추적/로그/메트릭의 버전 태그.
- 버전 별 오류/대기 시간/핀 델타 대시 보드.
준수/DR
- "날짜에" 환경의 재현 가능한 상승
- policyVer 응용 프로그램 로그 (AML/RG/KYT).
핵심 버전은 돈의 "보험" 과 제품 개발 속도입니다. 이를 통해 플랫폼은 예측 가능하게 발전합니다. 고장없이 새로운 기회가 나오고 재정이 재현 가능하며 통합이 호환되며 감사가 진정됩니다. 버전을 프로세스의 일부 (계약, 마이그레이션, 원격 측정, 릴리스) 로 만드십시오. 백엔드는 P&L 및 평판의 손실없이 수년간의 변화를 견딜 수 있습니다.