GH GambleHub

Striming va oqim tahlillari

1) Maqsadi va qiymati

Striming konturi «uchishda» qarorlar qabul qilinishini ta’minlaydi:
  • Antifrod/AML: depozitlarning tuzilishini, velocity-hujumlarni, provayderlarning anomaliyalarini aniqlash.
  • Responsible Gaming (RG): limitlardan oshib ketish, xatar-patternlar, o’z-o’zini istisno qilish.
  • Operatsiyalar/SRE: SLA degradatsiyasi, xatolar portlashi, hodisalarning erta signallari.
  • Mahsulot/marketing: shaxsiylashtirish voqealari, missiyalar/kvestlar, real-time segmentatsiyasi.
  • near-real-time hisoboti: GGR/NGR vitrinalari, operatsion panellar.

Maqsadli tavsiflari: p95 end-to-end 0. 5-5 s, to’liqligi ≥ 99. 5%, boshqariladigan qiymat.


2) Etalon arxitekturasi

1. Ingest/Edge

`/events/batch` (HTTP/2/3), gRPC, OTel Collector.
Sxemalarni validatsiya qilish, anti-dublikatlar, geo-yo’naltirish.

2. Hodisa shini

Kafka/Redpanda (partiyalashtirish’user _ id/tenant/market’).
Retention 3-7 kun, siqish, «singan» xabarlar uchun DLQ/« karantin ».

3. Ishlov berish

Flink / Spark Structured Streaming / Beam.
Stateful-operatorlar, CEP, watermark, allowed lateness, deduplikatsiya.
Boyitish (Redis/Scylla/ClickHouse-Lookup), asinxron I/O taymautlar bilan.

4. Serving/operativ vitrinalar

ClickHouse/Pinot/Druid daqiqali/soniyali agregatsiya va dashbordlar uchun.
Modellarni skoring qilish uchun Feature Store (online).
Alert-topiklar → SOAR/tiketing/vebxuklar.

5. Uzoq muddatli saqlash (Lakehouse)

Bronze (raw), Silver (clean), Gold (serve) — Parquet + Delta/Iceberg/Hudi.
Replay/bektestlar, time-travel.

6. Kuzatish

Payplaynlar metrikasi, treysing (OTel), logi, lineage.


3) Sxemalar va kontraktlar

Schema-first: JSON/Euro/Protobuf + Registry,’schema _ version’.
Evolyutsiya: back-compatible - yangi nullable maydonlar; breaking - ’/v2’+ ikki marta nashr etish.
’event _ time’ (UTC),’event _ id’,’trace _ id’,’user. pseudo_id`, `market`, `source`.


4) Derazalar, watermarks va kechiktirilgan ma’lumotlar

Oynalar:
  • Tumbling (qatʼiy), Hopping (qoplangan), Session (harakatsizligi boʻyicha).
  • Watermark: event-time bo’yicha «bilim» ostonasi; masalan, 2-5 daqiqa.
  • Late data: tuzatishlar chiqarish, «late = true», kuchli orqada qolganda DLQ.
Flink SQL misoli (10 daqiqalik velocity depozitlar):
sql
SELECT user_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS sum_10m
FROM stream.payments
GROUP BY user_id, TUMBLE(event_time, INTERVAL '10' MINUTE);

5) Stateful-agregatsiyalar va CEP

Ulanish:’user _ id’,’device _ id’,’payment. account_id`.
Holati: shoshilinch summalar/hisoblagichlar, sessiyalar, dedup uchun bloom-filtrlar.
CEP-patternlar: strukturalash (<chegara, ≥ N marta, T oynasi uchun), device-switch, RG-fatigue.

CEP taxallusi:
python if deposits.count(last=10MIN) >= 3 and deposits.sum(last=10MIN) > THRESH and all(d.amount < REPORTING_THRESHOLD):
emit_alert("AML_STRUCTURING", user_id, window_snapshot())

6) Exactly-Once, tartib va idempotentlik

Shina: at-least-once + partiyalash kalitlari mahalliy tartibni taʼminlaydi.
Idempotentlik:’event _ id’+ dedup-steyt (TTL 24-72 soat).
Sink: tranzaksion kommitalar (2-phase) yoki upsert/merge-idempotentlik.
Outbox/Inbox: OLTP domen voqealarini kafolatlangan tarzda nashr etish.


7) Real vaqtda boyitish

Lookup: Redis/Scylla (RG-limitlar, KYC-maqom, BIN → MCC, IP → Geo/ASN).
Asinxron qo’ng’iroqlar: sanksiya/PER API bilan taymaut va fallback («unknown»).
FX/taymzona: summalarni normallashtirish va bozorning mahalliy vaqti (’fx _ source’,’tz’).


8) Serving va real-time vitrinalar

ClickHouse/Pinot/Druid: daqiqalar/soniyalar boʻyicha agregatsiyalar, materialized views.
Gold-stream: GGR/RG/AML, SLA tezkor jadvallari kechiktirish uchun ≤ 1-5 daqiqa.
API/GraphQL: dashbordlar va tashqi integratsiyalar uchun past latentlik.

ClickHouse misoli (har daqiqada GGR):
sql
CREATE MATERIALIZED VIEW mv_ggr_1m
ENGINE = AggregatingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), market, provider_id) AS
SELECT toStartOfMinute(event_time) AS ts_min,
market,
provider_id,
sumState(stake_base) AS s_stake,
sumState(payout_base) AS s_payout
FROM stream.game_events
GROUP BY ts_min, market, provider_id;

9) Kuzatuv va SLO

SLI/SLO (taxminlar):
  • p95 ingest → alert ≤ 2 s (tanqidiy), ≤ 5 s (qolgan).
  • Completeness T ≥ 99. 5%.
  • Sxemalar xatosi ≤ 0. 1%; ’trace _ id’ bilan sodir bo’lgan voqealar ulushi ≥ 98%.
  • Strim-servisdan foydalanish imkoniyati ≥ 99. 9%.
Dashbordlar:
  • Partiyalar/topiklar bo’yicha laglar, operatorlarning busy time, holat miqdori.
  • «Hodisa → qoida → keys» hunisi, «issiq» kalitlar xaritasi, late-ratio.
  • Qiymati: cost/GB, cost/query, chekpoyntlar/repleylar qiymati.

10) Maxfiylik va komplayens

PII-minimallashtirish: ID taxallusi, maydonlarni kamuflyaj qilish, PAN/IBAN tokenizatsiyasi.
Ma’lumotlarning rezidentligi: mintaqaviy konveyerlar (EEA/UK/BR), alohida shifrlash kalitlari.
Huquqiy operatsiyalar: downstream vitrinalarida DSAR/RTBF, keys/hisobotlar uchun Legal Hold.
Audit: kirish daftarlari, echimlarning o’zgarmas arxivlari.


11) Iqtisodiyot va unumdorlik

Kalitlar va sharding: «issiq» kalitlardan qoching (salting/composite key).
Holat: oqilona TTL, snapshotlar, tyuning RocksDB/steyt orqa tomoni.
Shovqinli oqimlar uchun up-front reduce.
Sampling: masalan, nekritik metriklarda (tranzaksiya/komplayensda emas).
Chargeback: mavzular/joblar bo’yicha budjetlar, kvotalar va jamoalar bo’yicha allokatsiya.


12) Oqimli DQ (sifat)

Ingest-validatsiya (schema, enums, size), dedup’(event_id, source)’.
Oqimda: completeness/dup-rate/late-ratio, oynalarni boshqarish (ikki marta hisoblash yoʻq).
Reaksiya siyosati: critical → DLQ + alert; major/minor → tag va keyingi tozalash.

Minimal qoidalar (YAML, misol):
yaml stream: payments rules:
- name: schema_valid type: schema severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
- name: dedup_window type: unique keys: [event_id]
window_minutes: 1440

13) Foydalanish xavfsizligi va release-nazorat

RBAC/ABAC: oqimlarni oʻqishda alohida rollar, qoidalar/modellarni oʻzgartirish.
Dual control: «2 kalit» orqali qoidalar va modellarni chiqarish.
Canary/A/B: qoidalar va modellarning qorong’u uchirilishi, precision/recall nazorati.
Sirlar: KMS/CMK, muntazam rotatsiya, jurnallarda sirlarni taqiqlash.


14) Jarayonlar va RACI

R (Responsible): Streaming Platform (infra/relizlar), Domain Analytics (qoidalar/fichlar), MLOps (skoring).
A (Accountable): Head of Data/Risk/Compliance.
C (Consulted): DPO/Legal (PII/retention), SRE (SLO/hodisalar), Arxitektura.
I (Informed): Mahsulot, Qo’llab-quvvatlash, Marketing, Moliya.


15) Joriy etish yo’l xaritasi

MVP (2-4 hafta):

1. Kafka/Redpanda + ikkita tanqidiy topika (’payments’,’auth’).

2. Flink-job watermark, dedup va bitta CEP-qoidasi (AML yoki RG) bilan.

3. ClickHouse/Pinot vitrin 1-5 daqiqa, dashbordlar lag/completeness.

4. Hodisa kanali (vebxuki/Jira), asosiy SLO va alertlar.

2-bosqich (4-8 hafta):
  • Onlayn boyitish (Redis/Scylla), Feature Store, asinxron lookups.
  • Qoidalarni kod sifatida boshqarish, kanareya relizlari, A/B.
  • DQ oqimi, konveyerlarni hududlashtirish, DSAR/RTBF tartib-taomillari.
3-faza (8-12 hafta):
  • Multi-region active-active, replay-simulyator «what-if», ostonalarni avtokalibrlash.
  • To’laqonli Gold-stream vitrinalar (GGR/RG/AML), hisobot near-real-time.
  • Qiymatli dashbordlar, chargeback, DR-mashqlar.

16) Misollar (parchalar)

Flink CEP — device switch:
sql
MATCH_RECOGNIZE (
PARTITION BY user_id
ORDER BY event_time
MEASURES
FIRST(A.device_id) AS d1,
LAST(B.device_id) AS d2,
COUNT() AS cnt
PATTERN (A B+)
DEFINE
B AS B.device_id <> PREV(device_id) AND B.ip_asn <> PREV(ip_asn)
) MR
Kafka Streams - idempotent filtr:
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}

17) Sotishdan oldingi chek-varaq

  • Registry, back-compat testlaridagi sxemalar va shartnomalar yashil rangda.
  • watermark/allowed lateness, dedup va DLQ kiritilgan.
  • SLO va alertlar (lag/late/dup/state size) moslashtirilgan.
  • Keshlar va taymautlar bilan boyitish, fallback «unknown».
  • RBAC/dual-control qoidalari/modellari, barcha o’zgarishlar ro’yxatga olinadi.
  • Qoidalar, vitrinalar va runbook’va replay/qaytarish hujjatlari.

18) Tez - tez xatolar va ulardan qanday qochish mumkin

Ignor event-time: watermarkssiz metriklar «suzadi».
Dedup yo’q: yolg’on alerta va ikki tomonlama hisob.
Issiq kalitlar: notekis partiyalar → salting/resharding.
Issiq yoʻldagi sinxron tashqi API: faqat async + kesh.
Boshqarilmaydigan qiymat: oldindan agregatsiya qilish, TTL holati, kvotalar, cost-dashbordlar.
Simulyator yo’qligi: «replay» bo’lmagan chiqishlar regressiyaga olib keladi.


19) Lugʻat (qisqacha)

CEP - Complex Event Processing.
Watermark - event-time boʻyicha oynalarning tayyorlik chegarasi.
Allowed Lateness - kech voqealarga ruxsat berish.
Stateful Operator - saqlangan holatga ega operator.
Feature Store - belgilarning kelishilgan servingi (online/offline).


20) Jami

Striming va oqim tahlillari - bu boshqariladigan tizim: kontraktlar, derazalar va watermarks, stateful-logika va CEP, boyitish va real-time vitrinalar, SLO va kuzatish qobiliyati, maxfiylik va nazorat ostidagi qiymat. Ushbu amaliyotlar asosida platforma ishonchli xavf detektorlari, tezkor panellar va bashorat qilinadigan latentlik va xarajatlar bilan shaxsiylashtiriladi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.