카지노가 모듈 식 아키텍처로 전환하는 이유
카지노 모듈성
역사적 모놀리스는 성장 속도를 늦춘다. 각 변경 사항은 코드 전체에서 전체 시스템의 릴리스, 공급자 및 PSP의 통합으로 SLO 히트, 규정 준수 업데이트를 가져온다. 모듈 식 아키텍처 (도메인 중심 + 계약 API + 이벤트) 는 다음을 허용합니다
"모든 사람과 모든 사람" 을 조정하지 않고 기능을 신속하게 표시하고 제공 업체를- 선택적으로 스케일링 (금전 등록기와 별도로 라이브 비디오, 게임 카탈로그와 별도로 지갑);
- 격리 위험 (프로모션의 오류로 인해 지갑이 무너지지 않음);
- 라이센스와 준수 (도메인 경계 내의 로깅/버전/정책);
명확한 계약, 재사용 및 자동화를 통해 TCO를 줄입니다.
도메인 맵 (고장 예)
지갑/원장-돈, 통화 헤지, 보너스 잔액, PITR, 감사.
캐시어/지불-PSP, 온 램프/오프 램프, KYT, demempotent 웹 후크.
게임 브리지-공급자 어댑터, 라운드/베팅 정규화.
카탈로그/로비-게임, 공급자, 기능 및 표시 규칙.
프로모션/보너스-재고 규칙, 바우처, 베팅.
KYC/AML/RG-신원 확인, 제재/PEP, 한계 및 자기 배제.
경험-frontend, CNC, i18n, A/B, Telegram WebApp.
원격 측정/분석-이벤트, 쇼케이스, ML/AI.
준수 및 감사-MGA/UKGC 보고서, WORM 아카이브.
모듈 식 아키텍처 원리
1. DDD 경계 (경계 컨텍스트). 데이터와 논리에 대한 명확한 지식.
2. API 우선 + 이벤트. OpenAPI/AsyncAPI, JSON-Schema, 계약 테스트.
3. 검증 및 호환성. 'v1 → v1. 1 → v2 '(확장 → 마이그레이션 → 계약).
4. 이념과 정확히 한 번의 의도. 요청 키, 이벤트 중복 제거.
5. 기본 보안. mSL, HMAC 서명, 짧은 JWT, RBAC/ABAC.
6. 독립 릴리스. 카나리아/청록색 배치, "투 라이터" 마이그레이션은 금지됩니다.
7. 관찰 가능성. 엔드-투-엔드 '트레이스', 모듈 당 SLO 메트릭.
8. 피카 깃발. 트래픽/지리/사용자 세그먼트, 안전한 롤백.
통합 계층: 공급자와 PSP를 연결하는 방법
어댑터/브리지 패턴: 각 게임/결제 제공 업체는 단일 플랫폼 계약을 가진 플러그인입니다.
게임: 정규화 '원형/베트/상태', 오류 매핑, 제한 캐시.
결제: 단일 인터페이스 '승인/캡처/환불/지불', demempotency가있는 웹 후크.
불연속성-결함이있는 어댑터는 다른 사람에게 영향을 미치지 않으면 서 유지 보수로 이동합니다
샘플 계약 (OpenAPI 조각):yaml 게시물/지갑/직불:
요청 바디:
내용:
응용 프로그램/json:
스키마:
$ ref: '#/components/skemas/DebitRequest @ v1'
응답:
'200': {$ ref: '#/components/skemas/DebitResult @ v1'}
'409': {설명: IDEMPOTENT _ REPLAY}
"순환계" 로서의 이벤트
버스 (Kafka/NATS) 이벤트 →:- '내기. ',' 라운드를 배치했습니다. ',' 지불금을 정산했습니다. 요청/승인 ', kyc. 확인/실패 ',' rg. (PHP 3 = 3.0.6, PHP 4) 발급/소비 ', 계산원. 웹 후크. ',' 지갑을 받았습니다. 보류/해제 ', 경고. slo _ break '.
- 이벤트는 과거를 취소하지 않습니다. 별도의 보상 이벤트를 통한 조정.
- 각 모듈은 원래 이벤트, 파생 상품 만 새로운 주제로 작성합니다.
데이터: 레이어 및 일관성
모듈 당 OLTP: Postgres/MySQL/KeyDB-격리 된 트랜잭션.
OLAP/상점: ClickHouse/BigQuery는 이벤트로 구축됩니다. OLTP와 분석은 혼합되지 않습니다.
Feature Store/ML: 기능 및 TTL 버전의 OLTP 독립 계층.
일관성: 모듈과 돈 사이의 전략적으로 최종-국경에서의 로컬 ACID + dempotent 조치.
배포 및 스케일링
컨테이너 (Docker/K8): 자동 스케일 모듈로 (지갑-CPU/IO; 라이브 비디오-네트워크; 다리-RPS).
주변 측정기 격리: 네트워크 정책, 모듈 당 개별 비밀/키, 다른 PII/화폐/원격 측정 상점.
교통 형성: 깃발, 카나리아 쉐어, 지역 노선.
DR/HA: 다중 AZ; 돈에 대한 자산 책임, 판독/미디어에 대한 자산 자산.
규정 준수가 모듈에 "꿰매어집니다"
KYC/AML/RG는 정책 및 솔루션 로그 ('policyVer') 가있는 독점 모듈입니다.
감사/세계-불변의 돈/라운드/지불 이벤트 저장.
보고-완전성/적시성을 위해 관할 구역 (MGA/UKGC), SLA 별 수출.
샘플 스트림
요율 → 계산 → 지불
1. '게임 브리지' 는 'bet. 배치' (demempotent).
2. '지갑' 은 '보류' 및 게시 '지갑을 만듭니다. 보류 '.
3. '게임 브리지' 는 → '라운드 제공 업체의 결과를 얻습니다. 정착 '.
4. '지갑' 은 '결제' (릴리스/지불) → '지갑을 고려합니다. 정착 '.
5. '프로모션' 은 이벤트를 소비하고 보너스 → '보너스를받습니다. 발행 된 '.
현금 데스크 (예금)
1. '계산원' 은 '결제' 를 만듭니다. 의도적으로 '"Idempotency-Key'.
2. PSP는 웹 후크 → 계산원을 호출합니다. 웹 후크. 받았다 '.
3. '지갑. 신용 '실제로 → 분석 및 RG 이벤트.
다운 타임없이 변경 (확장 → 마이그레이션 → 계약)
1. 확장: 'v1에 필드/엔드 포인트 추가 1 ', 오래된 고객은 깨지지 않습니다.
2. Migrate: 소비자는 새로운 것을 읽고 두 버전으로 작성합니다 (비 금전적 인 경우에만 이중 쓰기).
3. 계약: EOL 'v1 발표. 0 ', 계획대로 N 주 후에 제거됩니다.
플랫폼 엔지니어링
골든 경로: 모듈 템플릿 (repo askeleon, CI/CD, 경고, SLO, 비밀).
계약 테스트: CI의 Pact/AsyncAPI 테스트; 가짜 제공 업체와의 통합 환경.
서비스 카탈로그 (Backstage): 누가 소유자, SLA, API 버전, 사건 서적입니까?
모듈성 성공 지표
아이디어에서 프로덕션 릴리스까지의 리드 타임 ° X 시간- (PHP 3 = 3.0.6, PHP 4)
(격리로 인한) 인터넷 사고에 대한 MTTR.
Infra cost/GGR은 안정적이거나 트래픽 증가 (선택적 스케일) 가있는 CDN입니다.
공급자/PSP 통합 시간 (브리핑에서 prod까지) NDO.
반 패턴
마이크로 서비스를위한 마이크로 서비스. 명확한 데이터 경계가 없으면 연결성과 복잡성이 커지고 있습니다.
모듈 간 공통 DB/다이어그램. 격리 및 독립 릴리스를 죽입니다.
버전/계약이없는 이벤트. 소비자를 "조용히" 깨십시오.
돈을위한 이중 쓰기. 불일치의 위험은 한 작가를 통한 엄청난 단계 일뿐입니다.
모든 것을 갖춘 글로벌 "유틸리티 계층". 숨겨진 모놀리스로 변합니다.
기능 플래그와 킬 스위치가 없습니다. 실수는 즉시 모든 사람을 때립니다.
OLTP/OLAP 믹스. 보고서는 요금/지갑을 느리게합니다.
관찰 가능성이 없습니다. SLO를 측정하고 사건을 연결할 것은 없습니다.
모듈 식 아키텍처 전환 점검표
전략 및 도메인
- 경계 상황, 소유자 및 모듈 KPI가 정의됩니다.
- 상호 작용 맵: API/이벤트, 중요 및 SLO.
계약 및 보안
- OpenAPI/AsyncAPI + JSON- 스키마; 버전 및 수명주기.
- mSL/HMAC, 짧은 JWT, 국경의 RBAC/ABAC.
데이터
- 분할 OLTP; 이벤트는 OLAP의 소스입니다.
- API/webhooks의 이념성, 메시지 중복 제거.
CI/CD 및 릴리스
- 카나리아/청록색, 특징 플래그, 자동 스케일 모듈로.
- CI의 계약 테스트; 가짜 제공 업체가있는 환경.
관찰 가능
- 로그/메트릭/트레일 ('traceID'); SLO 대시 보드.
- 비즈니스 지표별 경고 (VOID, 거부, 지불 지연).
준수
- 돈/라운드의 WORM 아카이브, 규제보고 수출.
- 솔루션 로그가있는 별도의 모듈로서 KYC/AML/RG.
미니 예
이벤트 라운드. @ v1 해결:json
{
"이벤트": "라운드. 정산, "" v ":" 1 "," roundID ":" R-2025-10-17-evo-23 "," gameID ":" evo _ blackjack _ 23 "," bets ": [{" bet끌기 ":" b _ 92f ":" p _ 1 ", 스테이크": "10. 00 "," 지불 ":" 15. 00 "," 결과 ":" WIN "}]," ts ":" 2025-10-17T14: 23:13. 120Z "," traceID ":" tr _ 5f1 "
}
이데올로기 지갑:
http
POST/지갑/정착
X 이데올로기 키: 9a7f-2b1c
{
"라운드": "R-2025-10-17-evo-23", "operations": [{"playerID": "p _ 1", "delta": "5. 00 "," 통화 ":" EUR "}]
}
모듈 식 아키텍처는 카지노 플랫폼을 "깨지기 쉬운 결합" 에서 각각 자체 계약, 데이터 및 SLO가있는 신뢰할 수있는 도메인 구성으로 변환합니다. 이는 통합 및 릴리스 속도를 높이고 선택적 스케일링을 제공하며 규정 준수를 단순화하며 사고 위험을 줄입니다. 도메인 경계, 계약 및 이벤트를 강조하고 보안 및 관찰 성을 강조하여 시작하면 제품이 느려지지 않고 성장하는 플랫폼을 얻을 수 있습니다.