GH GambleHub

تجزیه و تحلیل جریان و جریان

1) هدف و ارزش

مدار جریان تصمیم گیری در پرواز را فراهم می کند:
  • Antifraud/AML: شناسایی ساختار سپرده ها، حملات سرعت، ناهنجاری های ارائه دهندگان.
  • بازی مسئول (RG): بیش از محدودیت، الگوهای خطر، خود حذفی.
  • عملیات/SRE: تخریب SLA، انفجار خطا، سیگنال های حادثه اولیه.
  • محصول/بازاریابی: رویدادهای شخصی سازی، مأموریت/مأموریت، تقسیم بندی در زمان واقعی.
  • گزارش نزدیک به زمان واقعی: ویترین GGR/NGR، پانل های عملیاتی.

ویژگی های هدف: p95 پایان به پایان 0. 5-5 ثانیه، تکمیل ≥ 99. 5٪، ارزش مدیریت شده.


2) معماری مرجع

1. مصرف/لبه

'/events/batch '(HTTP/2/3), gRPC, OTel collector.
اعتبار سنجی طرح ها، ضد تکراری، مسیریابی جغرافیایی.

2. اتوبوس رویداد

Kafka/Redpanda (تقسیم بر 'user _ id/tenant/market').
نگهداری 3-7 روز، فشرده سازی، DLQ/» قرنطینه« برای پیام های »شکسته«.

3. جریان جریان

Flink/Spark Structured Streaming/Beam.
اظهارات stateful، CEP، علامت، تاخیر مجاز، deduplication.
غنی سازی (Redis/Scylla/ClickHouse-Lookup)، I/O ناهمزمان با وقفه.

4. نمایش خدمت/عملیاتی

ClickHouse/Pinot/Druid برای تجمع دقیقه/ثانیه و داشبورد.
فروشگاه ویژگی (آنلاین) برای مدل های به ثمر رساند.
موضوعات هشدار → SOAR/ticketing/webhooks.

5. ذخیره سازی طولانی مدت (دریاچه)

برنز (خام)، نقره (تمیز)، طلا (خدمت) - پارکت + دلتا/کوه یخ/هودی.
پخش/backtests، سفر در زمان.

6. قابل مشاهده بودن

معیارهای خط لوله، ردیابی (OTel)، سیاهههای مربوط، اصل و نسب.


3) طرحها و قراردادها

Schema-first: JSON/Avro/Protobuf + Registry، «schema _ version» در هر رویداد.
تکامل: سازگار با عقب - زمینه های جدید nullable ؛ شکستن - '/v2 '+ انتشار دوگانه.
فیلدهای مورد نیاز عبارتند از 'event _ time' (UTC), 'event _ id', 'trace _ id', 'user. pseudo_id'، «بازار»، «منبع».


4) ویندوز، علامت های سفید و داده های دیررس

پنجره ها:
  • غلت زدن، پرش، جلسه.
  • علامت گذاری به عنوان: آستانه «دانش» رویداد زمان ؛ به عنوان مثال 2-5 دقیقه.
  • داده های دیررس: تنظیمات قبل از صدور، «late = true»، DLQ با تاخیر قوی.
مثال Flink SQL (سرعت سپرده 10 دقیقه):
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'، 'پرداخت. account_id' است.
وضعیت: مبالغ کشویی/شمارنده، جلسات، فیلتر شکوفه برای deduplication.
الگوهای CEP: ساختار (<آستانه، ≥N بار، در هر پنجره T)، سوئیچ دستگاه، خستگی RG.

کد شبه 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) دقیقا یک بار، سفارش و idemotence

Bus: کلیدهای پارتیشن حداقل یک بار + سفارش محلی را ارائه می دهند.
Idempotence: 'event _ id' + حالت dedup (TTL 24-72 ساعت).
غرق شدن: تعهدات معاملاتی (2 فاز) یا upsert/merge-idempotency.
Outbox/Inbox: تضمین انتشار رویدادهای دامنه از OLTP.


7) غنی سازی در زمان واقعی

مراجعه: Redis/Scylla (محدودیت RG، وضعیت KYC، BIN → MCC، IP → Geo/ASN).
Asynchronous calls: sanctions/APP API with timeouts and fallback («ناشناخته»).
FX/منطقه زمانی: عادی سازی مقادیر و زمان بازار محلی ('fx _ source'، 'tz').


8) خدمت و فروشگاه های زمان واقعی

ClickHouse/Pinot/Druid: aggregations by minutes/seconds، نمایش های تحقق یافته.
جریان طلا: جداول عملیاتی GGR/RG/AML، SLA برای تاخیر ≤ 1-5 دقیقه.
API/GraphQL: تاخیر کم برای داشبورد و ادغام خارجی.

مثال 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 → هشدار ≤ 2 s (بحرانی)، ≤ 5 s (تعادل).
  • کامل بودن پنجره T ≥ 99 5%.
  • خطای طرح ≤ 0. 1%; درصد حوادث با «trace _ id» 98٪ ≥.
  • دسترسی به خدمات جریان ≥ 99. 9%.
داشبورد:
  • حزب/موضوع عقب می افتد، اپراتورهای زمان مشغول، اندازه دولت.
  • Funnel «sobytiye → pravilo → keys», نقشه «hot» keys, late-ratio.
  • هزینه: هزینه/GB، هزینه/پرس و جو، هزینه بازرسی/تکرار.

10) حفظ حریم خصوصی و انطباق

به حداقل رساندن PII: نام مستعار ID، پوشش زمینه، نشانه PAN/IBAN.
اقامت داده ها: خطوط لوله منطقه ای (EEA/UK/BR)، کلیدهای رمزگذاری فردی.
عملیات حقوقی: DSAR/RTBF در فروشگاه های پایین دست، نگهداری قانونی برای موارد/گزارش ها.
حسابرسی: دسترسی به سیاهههای مربوط، آرشیو راه حل بدون تغییر.


11) اقتصاد و بهره وری

کلید و شاردینگ: اجتناب از «داغ» کلید (نمک/کلید کامپوزیت).
وضعیت: TTL معقول، عکس های فوری، تنظیم حالت RocksDB/backend.
Preaggregation: کاهش جلو برای جریان های پر سر و صدا.
نمونه برداری: معتبر در معیارهای غیر بحرانی (نه در معاملات/انطباق).
بازپرداخت: بودجه برای موضوعات/مشاغل، سهمیه ها و تخصیص تیم.


12) جریان DQ (کیفیت)

Ingest-validation (schema, enums, size), dedup '(event_id, source)'.
در جریان: کامل بودن/dup-rate/late-ratio، کنترل پنجره (بدون شمارش دوگانه).
سیاست های واکنش: بحرانی → DLQ + هشدار ؛ 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) دسترسی به امنیت و کنترل انتشار

RBAC/ABAC: نقش های جداگانه برای خواندن موضوعات، تغییر قوانین/مدل ها.
کنترل دوگانه: اجرای قوانین و مدل ها از طریق «2 کلید».
Canary/A/B: قانون تاریک و مدل اجرا می شود، کنترل دقیق/فراخوانی.
اسرار: KMS/CMK، چرخش منظم، ممنوعیت اسرار در سیاهههای مربوط.


14) فرآیندها و RACI

R (مسئول): پلت فرم جریان (infra/releases)، تجزیه و تحلیل دامنه (قوانین/ویژگی ها)، MLOps (به ثمر رساند).
A (پاسخگو): رئیس داده/ریسک/انطباق توسط دامنه.
C (مشورت): DPO/حقوقی (PII/احتباس)، SRE (SLO/حوادث)، معماری.
I (مطلع): محصول، پشتیبانی، بازاریابی، مالی.


15) نقشه راه پیاده سازی

MVP (2-4 هفته):

1. کافکا/ردپاندا + دو موضوع مهم («پرداخت»، «auth»).

2. کار flink با علامت، deduplication و یک قانون CEP (AML یا RG).

3. ویترین ClickHouse/Pinot 1-5 دقیقه، تاخیر/کامل بودن داشبورد.

4. کانال حادثه (webhooks/Jira)، SLO های اساسی و هشدارها.

مرحله 2 (4-8 هفته):
  • غنی سازی آنلاین (Redis/Scylla)، فروشگاه ویژگی، جستجوی ناهمزمان.
  • مدیریت قانون به عنوان کد، انتشار قناری، A/B.
  • جریان DQ، منطقه بندی خطوط لوله، روش DSAR/RTBF.
مرحله 3 (8-12 هفته):
  • چند منطقه فعال فعال، چه اگر شبیه ساز پخش، خودکار کالیبراسیون آستانه.
  • ویترین کامل جریان طلا (GGR/RG/AML)، گزارش تقریبا در زمان واقعی.
  • داشبورد ارزش، بازپرداخت، تمرینات DR.

16) نمونه ها (قطعات)

فلینک CEP - سوئیچ دستگاه:
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
جریان کافکا - فیلتر idemotent:
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}

17) چک لیست پیش فروش

  • طرح ها و قراردادها در رجیستری، آزمون های برگشتی سبز هستند.
  • شامل علامت سفید/اجازه تاخیر، dedup و DLQ.
  • پیکربندی SLO و هشدار (تاخیر/اواخر/dup/اندازه دولت).
  • غنی سازی با انبارها و زمان، عقب نشینی «ناشناخته».
  • RBAC/کنترل دوگانه به قوانین/مدل، تمام تغییرات ثبت شده است.
  • قوانین، فروشگاه ها و مستندات runbook و پخش/برگشت.

18) اشتباهات مکرر و چگونگی اجتناب از آنها

نادیده گرفتن زمان رویداد: بدون علامت، معیارهای «شناور».
بدون deduplication: هشدار نادرست و شمارش دو برابر.
کلید های داغ: اعوجاج احزاب → شور/resarding.
API های جلویی همزمان در مسیر داغ: فقط async + cache.
هزینه های مدیریت نشده: پیش جمع آوری، TTL ایالات، سهمیه ها، داشبورد هزینه.
عدم شبیه ساز: rollouts بدون «پخش» منجر به رگرسیون.


19) واژه نامه (کوتاه)

CEP - پردازش رویداد پیچیده.
واترمارک - محدودیت آمادگی پنجره بر اساس زمان رویداد.
Lateness مجاز - تحمل وقایع اواخر.
اپراتور stateful - یک اپراتور با حالت ذخیره شده.
فروشگاه ویژگی - ویژگی گشت و گذار هماهنگ (آنلاین/آفلاین).


20) خط پایین

تجزیه و تحلیل جریان و جریان یک سیستم مدیریت شده است: قراردادها، پنجره ها و علامت های سفید، منطق stateful و CEP، غنی سازی و فروشگاه های زمان واقعی، SLO و قابلیت مشاهده، حریم خصوصی و ارزش تحت کنترل. با پیروی از شیوه های شرح داده شده، این پلت فرم آشکارسازهای ریسک قابل اعتماد، پانل های عملیاتی و شخصی سازی را با تاخیر و هزینه قابل پیش بینی دریافت می کند.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.