GH GambleHub

Стриминг жана агым аналитикасы

1) Максаты жана баалуулугу

Стримингдик контур "учууда" чечимдерди кабыл алууну камсыз кылат:
  • Антифрод/AML: депозиттерди түзүүнү, velocity чабуулдарын, провайдерлердин аномалияларын аныктоо.
  • Responsible Gaming (RG): чектен ашуу, тобокелдик үлгүлөрү, өзүн-өзү четтетүү.
  • Операциялар/SRE: SLA деградациясы, ката жарылуулары, инциденттердин алгачкы сигналдары.
  • Продукт/маркетинг: жекелештирүү окуялар, миссиялар/тапшырмалар, реалдуу убакыт сегменттөө.
  • near-real-time отчеттуулук: GGR/NGR терезелер, иш панелдер.

Максаттуу өзгөчөлүктөрү: p95 end-to-end 0. 5-5 с, толук ≥ 99. 5%, башкарылуучу наркы.


2) Эталондук архитектура

1. Ingest/Edge

`/events/batch` (HTTP/2/3), gRPC, OTel Collector.
Схемаларды валидациялоо, анти-дубликаттар, гео-маршрутизация.

2. Шина окуялар

Kafka/Redpanda (партиялаштыруу 'user _ id/tenant/market').
Retention 3-7 күн, кысуу, DLQ/" карантин "" сынган "билдирүүлөр үчүн.

3. Агым иштетүү

Flink / Spark Structured Streaming / Beam.
Stateful операторлору, CEP, watermark, allowed lateness, deduplication.
Байытуу (Redis/Scylla/ClickHouse-Lookup), убакыт менен асинхрондук I/O.

4. Сервинг/оперативдүү витриналар

ClickHouse/Pinot/Druid үчүн мүнөт/секунд топтоо жана dashboard.
Feature Store (онлайн) үчүн скоринг моделдер.
Alert-Topics → SOAR/Ticketing/Webhuke.

5. Узак мөөнөттүү сактоо (Lakehouse)

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

6. Байкоо

Пайплайн метрика, Trace (OTel), Логи, сызык.


3) Схемалар жана келишимдер

Schema-first: JSON/Euro/Protobuf + Registry, ар бир окуяда 'schema _ version'.
Эволюция: back-compatible - жаңы nullable талаалар; breaking - '/v2 '+ кош жарыялоо.
Милдеттүү талаалар: 'event _ time' (UTC), 'event _ id', 'trace _ id', 'user. pseudo_id`, `market`, `source`.


4) Терезелер, watermarks жана кеч маалыматтар

Терезелер:
  • Tumbling (белгиленген), Hopping (үстү менен), Session (активдүү эмес).
  • Watermark: event-time боюнча "билим" босогосу; мисалы, 2-5 мүнөт.
  • Late data: түзөтүүлөрдүн кошумча эмиссиясы, "late = true", DLQ катуу артта калуу менен.
Flink SQL мисал (10-мин velocity депозиттер):
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-агрегация жана CEP

'user _ id', 'device _ id', 'payment. account_id`.
Абалы: жылма суммалар/эсептегичтер, сессиялар, чоң ата үчүн bloom-чыпкалар.
CEP үлгүлөрү: түзүлүшү (<босого, ≥ N жолу, T терезе), device-switch, RG-fatigue.

Psevdocode CEP:
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, тартиби жана боштук

Шин: at-least-once + партиялаштыруу ачкычтары жергиликтүү тартипти камсыз кылат.
Демпотенттик: 'event _ id' + dedup-state (TTL 24-72 саат).
Sink: Транзакциялык комиссиялар (2-phase) же upsert/merge-idempotentity.
Outbox/Inbox: OLTP домен окуяларды кепилденген жарыялоо.


7) Реалдуу убакытта байытуу

Lookup: Redis/Scylla (RG-чектери, KYC-статусу, BIN → MCC, IP → Geo/ASN).
Асинхрондук чалуулар: убакыт жана fallback ("unknown") менен уруксат/PER API.
FX/таймзон: сумманы нормалдаштыруу жана рыноктун жергиликтүү убактысы ('fx _ source', 'tz').


8) Сервинг жана реалдуу убакыт витриналары

ClickHouse/Pinot/Druid: жыйындысы мүнөт/секунд, materialized views.
Gold-агым: GGR/RG/AML иш столдору, SLA кечигүү ≤ 1-5 мүнөт.
API/GraphQL: dashboard жана тышкы бириктирүү үчүн төмөн жашыруун.

ClickHouse мисал (ар бир мүнөт 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) Байкоо жана SLO

SLI/SLO (көрсөтмөлөр):
  • p95 ingest → alert ≤ 2 с (критикалык), ≤ 5 с (калган).
  • Completeness терезелер T ≥ 99. 5%.
  • Схема каталары ≤ 0. 1%; 'trace _ id' менен окуялардын үлүшү ≥ 98%.
  • Стрим сервисинин жеткиликтүүлүгү ≥ 99. 9%.
Дашборддор:
  • Партия/топиктер боюнча лагдар, операторлордун убакыт, байлыктын өлчөмү.
  • Huni "окуя → эреже → case", карта "ысык" ачкычтар, late-ratio.
  • Баасы: cost/GB, cost/query, чекпойнттордун/репликалардын баасы.

10) Купуялык жана комплаенс

PII-минималдаштыруу: ID псевдонимизациялоо, талааларды жашыруу, PAN/IBAN токендештирүү.
Маалыматтардын резиденттүүлүгү: аймактык конвейерлер (EEA/UK/BR), жеке шифрлөө ачкычтары.
Юридикалык иш: DSAR/RTBF Downstream Display, Cases/отчеттор үчүн мыйзамдуу Hold.
Аудит: кирүү журналдары, өзгөрүлбөгөн чечимдер архивдери.


11) Экономика жана аткаруу

Ачкычтар жана шардана: "ысык" ачкычтарды качуу (salting/composite key).
Абалы: акылга сыярлык TTL, Snapshots, RocksDB/арткы мамлекеттик тюнинг.
Predagregation: up-front reduce үчүн ызы-чуу агымы.
Sampling: критикалык эмес метриктер боюнча (бүтүмдөр/комплаенс боюнча эмес).
Chargeback: темалар боюнча бюджеттер/джобдор, квоталар жана командалар боюнча аллокация.


12) DQ агымы (сапаты)

Ингест-валидация (schema, enums, size), дедуп '(event_id, source)'.
агымында: completeness/dup-rate/late-ratio, терезе башкаруу (эки эсеби жок).
жооп саясаты: critical → DLQ + alert; major/minor → тег жана кийинки тазалоо.

Минималдуу эрежелер (YAML, мисал):
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) Коопсуздук жеткиликтүүлүгү жана release-control

RBAC/ABAC: агымдарды окуу, эрежелерди/моделдерди өзгөртүү үчүн өзүнчө ролдор.
Dual control: "2 ачкычы" аркылуу эрежелерди жана моделдерди чыгаруу.
Canary/A/B: эрежелердин жана моделдердин караңгы баштоо, precision/кайра текшерүү.
Secrets: KMS/CMK, үзгүлтүксүз айлануу, Логин жашыруун тыюу салуу.


14) Процесстер жана RACI

R (Responsible): Streaming Platform (infra/релиздер), Domain Analytics (эрежелер/чиптер), MLOps (эсеби).
A (Accountable): Head of Data/Risk/Compliance домендери боюнча.
C (Consulted): DPO/Юридикалык (PII/retention), SRE (SLO/окуялар), Архитектура.
I (Informed): Продукт, колдоо, маркетинг, каржы.


15) Ишке ашыруунун жол картасы

MVP (2-4 жума):

1. Kafka/Redpanda + эки сынчыл топика ('payments', 'auth').

2. Flink джоба watermark, дедуп жана бир CEP эрежеси менен (AML же RG).

3. ClickHouse/Pinot айнек 1-5 мин, dashboard lag/completeness.

4. Окуя-канал (Webhuke/Jira), негизги SLO жана алерталар.

2-этап (4-8 жума):
  • Онлайн байытуу (Redis/Scylla), Feature Store, асинхрондук lookups.
  • Кодду башкаруу, канар релиздери, A/B
  • DQ агымы, конвейер регионалдаштыруу, DSAR/RTBF жол-жоболору.
Этап 3 (8-12 жума):
  • Мульти-аймак active-active, "what-if" реплик-симулятору, босоголорду автоматтык калибрлөө.
  • Толук Gold-stream Display (GGR/RG/AML), отчеттуулук near-real-time.
  • Наркы дашборддор, chargeback, DR-машыгуулар.

16) Мисалдар (фрагменттер)

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 - демпотенттик чыпкасы:
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}

17) Азык-түлүктүн алдындагы чек-тизме

  • Registry схемалар жана келишимдер, back-compat тесттер жашыл.
  • watermark/allowed lateness, дедуп жана DLQ кирет.
  • Жөндөлгөн SLO жана Алерт (lag/late/dup/state size).
  • Кэш жана тайм менен байытуу, fallback "unknown".
  • эрежелер/моделдер боюнча RBAC/эки-контролдоо, бардык өзгөрүүлөр туура.
  • Документтештирүү эрежелери, терезелер жана runbook 'жана реплика/кайра.

18) Көп каталар жана аларды алдын алуу үчүн кантип

Ignor event-time: watermarks метрика жок "сүзүп".
Эч кандай чоң атасы: жалган алерталар жана кош эсеп.
Hot Keys: партия → salting/resharding кайчылаш.
Hot жолдо синхрондуу тышкы API: гана async + кэш.
Башкарылбаган наркы: алдын ала агрегация, TTL абалы, квота, cost-dashboard.
Симулятордун жоктугу: "replay" жок чыгуу регрессияга алып келет.


19) Глоссарий (кыскача)

CEP - Complex Event Processing (окуялардын үлгүлөрү).
Watermark - event-time терезелердин даяр чек.
Allowed Lateness - кеч окуяларды кабыл алуу.
Stateful Operator - сакталган абалы менен оператор.
Feature Store - белгилердин макулдашылган сервинги (онлайн/оффлайн).


20) Жыйынтык

Агымдык жана агымдык аналитика - бул башкарылуучу система: келишимдер, терезелер жана watermarks, stateful-логика жана CEP, байытуу жана реалдуу убакыт витриналары, SLO жана байкоо жүргүзүү, купуялык жана контролдук наркы. Баяндалган тажрыйбаларды ээрчип, платформа ишенимдүү тобокелдик детекторлорун, оперативдүү панелдерди жана алдын ала жашыруун жана чыгымдар менен жекелештирүүнү алат.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.