GH GambleHub

Меъмории Microservice

1) Чаро microservices дар IGaming

Суръати тағирот: нашри мустақили хусусиятҳои даста (пардохтҳо, мундариҷа, хатар, мусобиқаҳо).
Эътимоднокӣ: нокомии як хидмат тамоми маҳсулотро паст намекунад (маҳдудиятҳои нокомӣ).
Миқёс: миқёси уфуқии доменҳои "гарм" (ҳамён, фойе, ҷараён).
Мувофиқат: ҷудокунии маълумот аз рӯи минтақа/қаламрав.

Вақте ки ин арзиш надорад: дастаи хурд/ҳаҷм, ягон амалияи Dev

2) Доменҳо, сарҳадҳо ва дастаҳо (DDD + Team Topologies)

Контурҳои домейн: Ҳисоб/Профил, CCM/Мувофиқат, Пардохтҳо/Ҳамён, Мундариҷаи бозӣ/Маҷмӯа, Бонусҳо/Миссияҳо, Мусобиқаҳо, Маркетинг/CRM, Ҳисоботдиҳӣ/BI.
Контексти маҳдуд = Модели маълумот ва шартномаи забон.
Тағйири ҷараён ↔ фармонҳо: як фармон = як ҳалқа + SLO-ҳои он.
BFF (Backend for Frontend): фасадҳои алоҳида барои Web/Mobile/Partner, то ки дар муштарӣ "оркестр" ҷамъ нашавад.

3) Алоқа: синхронӣ ва асинхронӣ

Синхронӣ (REST/GRPC): ҳангоми вокуниши фаврӣ лозим аст (санҷиши маҳдудиятҳои амонатӣ).
Asynchron (Kafka/NATS/SQS): рӯйдодҳо ва равандҳои пасзамина (аккредитатсияи нақд, почтаҳо, навсозиҳои рейтинг).

Қоидаҳо:
  • Роҳи интиқодӣ = ҳадди аққали шабака.
  • Интегратсияи домейнҳо - тавассути чорабиниҳо ва шартномаҳои API.
  • "Занҷирҳои 5 + зангҳои синхронӣ" -ро онлайн созед → истифодаи EDA/sagas.

4) Шартномаҳо ва версия

Шартномаи якум: Феҳристи Schema (Avro/JSON Schema).
Мутобиқати Sem-Ver +: Илова кардани майдонҳо муштариёнро вайрон намекунад.
Шартномаҳои истеъмолкунанда (CDC): санҷиши худкор дар CI (против регрессия).
Сиёсати радкунӣ: равзанаи дастгирӣ (12-18 моҳ), телеметрия барои версияҳои кӯҳна.

5) Ҳодисаҳо, сагҳо ва пайдарҳамӣ

Outbox/Transaction Log Tail: сабти атомӣ "маълумот + ҳодиса".

Намунаҳои Saga:
  • Оркестр (ҳамоҳангсози марказӣ) барои пардохтҳо/натиҷаҳо.
  • Хореография (вокуниш ба рӯйдодҳо) барои мукофотпулӣ/миссияҳо.
  • Idempotence: калидҳо дар 'субъект + амал + nonce', нигоҳдории сабти ном.
  • Мувофиқат: "берунӣ" - тавассути рӯйдодҳо; "дохилӣ" - муомилот дар доираи хидмат.

6) Маълумот ва нигаҳдорӣ

Принсипи "мағозаи худ": ҳар як хидмат дорои пойгоҳи додаҳои худ (ҷудокунии схемаҳо) мебошад.

Интихоби анбор аз рӯи шакли дастрасӣ:
  • Амалиётҳо/тавозунҳо реляционӣ (PostgrE SQL) бо инвариантҳои қатъӣ мебошанд.
  • Ҳодисаҳо/журнал - танҳо замима (Кафка/Редпанда).
  • Кэш/сеансҳо - Redis/Key-DB; пешсафон - Маҷмӯаҳои мураттабшудаи Редис.
  • Ҷустуҷӯ - Ҷустуҷӯи кушод/эластикӣ.
  • Пешгӯиҳои хондашуда (CQRS) - Рӯйхати зуд/Ҳисоботҳо.

7) Эътимоднокӣ ва субот

Вақтсанҷҳо/Retry бо jitter/Retry-budget танҳо барои амалиёти idempotent.
Circuit-breaker/Outlier-ejection байни хидматҳо.
Булкхед: ҳавзҳои алоҳида барои "ғавғо" дар болооб.
Меъёри нарх барои як муштарӣ/масир, бозгашт (503 + Retry-After).
Коркарди мактуби мурда + заҳролудшавӣ дар навбат.

8) Мушоҳидакорӣ

Пайгирӣ: Open-Telemetry ('trace _ id' тавассути shlyuz → servisy → BD).
Нишондиҳандаҳо: RPS, p50/p95/p99, сатҳи хатогӣ 4xx/5xx, пуррагӣ (CPU/mem/queue), ченакҳои корӣ (TTP, TTW).
Гузоришҳо: сохтори JSON, PII/PAN/IBAN, таносуб аз ҷониби 'trace _ id'.
SLO/огоҳӣ: ба масир/функсия (масалан, 'Амонат p95 ≤ 300 ms', муваффақият ≥ 98. 5%`).

9) Бехатарӣ ва риояи

Zero-Trust: mTLS servis↔servis (SPIFFE/SPIRE), сертификатҳои кӯтоҳмуддат.
Auth .N/Z: OAuth2/JWT (aud/scope/exp), фарқияти нақшҳоро муайян мекунад.
Асрҳо: Менеҷери KMS/Сирри махфӣ/Сирри мӯҳршуда, гардиши калидҳо.
GDPR/маҳаллисозии маълумот: кластерҳои минтақавӣ, гео-панҷара дар дарвозаи API.
Аудит: гузоришҳои тағйирнопазир (WORM), пайгирии амалҳои маъмурӣ.

10) Ҷойгиркунӣ ва релизҳо

Containers/K8s: як хидмат = як густариш; захираҳо/маҳдудиятҳо; Poddisruption Буҷет.
CI/CD: линтерҳо, санҷишҳои воҳид/шартнома/integ, сканкунии амният, SBOM.
Варақаҳо: канарӣ/кабуд-сабз/соя, муҳоҷирати схемавӣ тавассути тавсеа ва шартнома.
Autoscale: HPA аз ҷониби CPU + RPS + p95 + чуқурии навбат; ба фурӯпошӣ рехт.

11) Иҷро ва арзиши

Профил: p95/99 "аз рӯи хидматҳо ва усулҳо", алангаи графикҳо.
Caching: хондан/навиштан-тавассути; TTL/маъюбӣ аз рӯи ҳодиса.
Ҷойгиршавии маълумот: Маълумоти гармро ба ҳисобкунӣ наздик нигоҳ доред.
Финҳо: ҳадафи 60-70% зеркашӣ кунед, "ҳавзҳои гарм", таваққуфи коргарони ғайрифаъол.

12) Қолибҳои домейн (IGaming)

12. 1 Пардохт/Ҳамён

Хидматҳо: 'пардохтҳо-gw' (фасад), 'ҳамён', 'psp-adapter-', 'қаллобӣ-чек'.
Ҷараён: 'init í reserve reserve гирифтан/баргардонидан' (saga).
События: 'Пардохт оғоз ёфт', 'Пардохти ваколатдор', 'Пардохт ҳал карда шуд/ноком'.
Idempotency: 'Idempotency-Key', мурда дар 'ҳамён'.

12. 2 CCM/Мутобиқат

Сервисы: 'kyc-flow', 'doc-storage', 'section-check', 'pep-screening'.
События: 'Kyc Пешниҳод карда шуд/Тасдиқ карда шуд/рад карда шуд', 'Таваккал' Навсозӣ '.
Аудит ва ETA: навбати вазифа, ҳолати вақт, амалҳои баъдӣ.

12. 3 Мукофотпулӣ/миссияҳо

Хидматҳо: 'бонус-муҳаррик', 'ҳамён-бонус', 'мутобиқат'.

Хореография: 'Betpleed → Bonus

Муҳофизат аз сӯиистифода: грантҳои бекас, маҳдудиятҳо, симуляторҳои қоидаҳо.

12. 4 мусобиқа/пешсафони

Хидматҳо: 'мусобиқа-svc', 'баҳодиҳӣ', 'пешсаф'.
Нигоҳдорӣ: Redis ZSET + даврии "оббозӣ" дар OLAP.
События: 'Хол Навсозӣ', 'Мусобиқа баста', 'Мукофот дода шуд'.

13) Шартнома + Намунаи рӯйдодҳо (соддакардашуда)

Кушодани API (порча) - ҳамён

yaml paths:
/v1/wallet/{userId}/credit:
post:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreditRequest'
responses:
'202': { description: 'Enqueued' }
components:
schemas:
CreditRequest:
type: object required: [amount, currency, reason, idempotencyKey]
properties:
amount: { type: number }
currency: { type: string, example: UAH }
reason: { type: string, enum: [Deposit, Bonus, Adjustment] }
idempotencyKey: { type: string }

Асынкапи (порча) - ҳодиса

yaml channels:
wallet. credit. applied:
publish:
message:
name: WalletCreditApplied payload:
type: object required: [userId, amount, currency, sourceEventId]

14) Санҷиш

Воҳиди/амвол барои қоидаҳои домейн.
CDC (Паймон/Тасдиқ) - санҷишҳои провайдер/шартномаи истеъмолӣ.
Интегратсия бо брокерҳои маҳаллӣ (Testcontainers).

Ҷараёни интиқодӣ E2E (бақайдгирӣ → depozit → оғоз igry → vyvod)

Санҷишҳои бесарусомонӣ/нокомӣ: қатъи PSP/тарки брокер/талафоти минтақа.

15) Метрика ва SLO (ҳадди аққал)

Мавҷудияти хизматрасонӣ: '≥ 99. 9% 'барои пардохт/ҳамён.
Latency p95: роҳи интиқодӣ API ≤ 300-500 мс.
Буҷаи хато: 0. 1–0. 5% дар як семоҳа, ҳушдорҳо.
Навбатҳо: рӯйдодҳои вақти пешбар (тавлид → истеъмол кунед), DLQ ≤ 0. 1%.
Бизнес: TTP, TTW, FTD-муваффақият, KYC-TTV.

16) Рӯйхати санҷишҳо

Тарҳи хидмат

  • Сарҳади домейн ва соҳиби маълумот.
  • Шартномаҳои Open
  • SLO/огоҳиҳо муайян карда шудаанд; ченакҳо/роҳҳо/гузоришҳо сохта мешаванд.
  • Сиёсати вақт/бозгашт/номутобиқатӣ.
  • Муҳоҷирати схема: тавсеа ва шартнома.

Пеш аз нашр

  • Воҳиди/CDC/ҳамгироӣ сабзро месанҷад.
  • Масири канарӣ ва нақшаи бозгашт.
  • Хатсайрҳои меъёрӣ/вазн танзим карда мешаванд.
  • Асрҳо/калидҳо/шаҳодатномаҳо кофта мешаванд.
  • Парчамҳо ва пайравони Ficha омода карда шудаанд.

17) Анти-намунаҳо

Шабака ҳамчун автобуси маълумот: занҷирҳои амиқи синхронӣ ба ҷои рӯйдодҳо.
"Худо" -и умумӣ - DB барои ҳама хидматҳо.
Набудани idempotency → аз ҳисоб/ҳисобҳои дукарата.
Варақаҳои торик бидуни телеметрия ва куштани гузариш.
Ҷаласаи пинҳонӣ (часпидан ба ҷои ҳолати беруна дар ҳама ҷо).
Шартномаҳо "дар рамз" бидуни версия ва CDC.
Мантиқ дар дарвозаи API ба ҷои хидматҳо (дарвоза = лоғар).

18) Муҳоҷирати Монолит (Расми Strangler)

1. Дарвозаи фасадӣ ва схемаи ибтидоиро интихоб кунед (масалан, пардохтҳо).
2. Аз монолит ба рӯйдодҳо хориҷ кардани сабти бинарӣ (outbox).
3. Оҳиста-оҳиста нуқтаҳои ниҳоиро ба хидмати нав интиқол диҳед (масир/вазнҳои канарӣ).
4. Монолитро ба "аслӣ" фишурда, хомӯш кунед.

19) Анбор ва инфрасохтор (мисол)

Алоқа: REST/GRPC, Кафка/NATS; Феҳристи схема.
Репозиторияҳо: Postgre OLAP - Клик/Хонаи калон.
Контейнерҳо/оркестр: Дар ҳолати зарурӣ Docker, Kubernetes (Ingress/Gateway), Service Mesh (Istio/Linkerd).
Дарвоза: Фиристанда/Конг/Трефик/NGINX.
CI/CD: Амалҳои Git- Hub/Git- Lab CI + Argo- CD/Flux; Паймон/OWASP/ZAP.
Мушоҳидакорӣ: Open: Telemetry, Prometheus, Tempo/Jaeger, Loki.

20) Варақаи ниҳоии фиреб

Ҳудуди тарроҳӣ аз рӯи домен ва масъулияти маълумот.
Синхрон - танҳо дар он ҷое, ки ҷавоб лозим аст; боқимонда чорабиниҳо мебошанд.
Шартномаҳо/схемаҳо/CDC - Суғуртаи регрессия.
Sagas + outbox + idempotency - асоси эътимоднокӣ.
Мушоҳида ва SLO интихоб нестанд, балки меъёри "омода" мебошанд.
Озодкунӣ тавассути канарӣ/кабуд-сабз, муҳоҷират - тавсеа ва шартнома.
Бехатарӣ/мутобиқат: mTLS, JWT, KMS, маълумоти минтақавӣ.
Аввалан, монолитҳои модулӣ, баъд эволютсия - агар миқёс ва гурӯҳ омода бошанд.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.