GH GambleHub

طرح های داده و تکامل آنها

1) چرا این یک پلت فرم iGaming است

قابلیت اطمینان - تغییرات در داده ها گزارش ها، API ها یا مدل ها را خراب نمی کند.
سرعت ویژگی: با خیال راحت اضافه کردن زمینه (KYC/RG/PSP) بدون توقف جریان.
نظارتی: ردیابی و تکرارپذیری (حسابرسی/اصل و نسب، DSAR، حقوقی نگه دارید).
هزینه: به حداقل رساندن «سرریز» و خرابی backfills.

2) انواع طرح ها و جایی که آنها زندگی می کنند

رویدادها (جریانها): "پرداختها. deposit_accepted'، بازی. round_finished' است.
OLTP/DDL: جداول نرمال شده (KYC، حساب ها، محدودیت ها).
DWH/storefronts (طلا): دانه های معدنی تحت BI/ML.
فروشگاه ویژگی: مجموعه ویژگی های آنلاین/آفلاین با تضمین سازگاری.
قراردادهای شریک خارجی: PSP، ارائه دهندگان بازی، منابع بازاریابی.

نشانه ها: Avro/Protobuf (جریان)، طرح JSON (ادغام)، SQL DDL (DWH)، طرح پارکت (دریاچه).

3) سازگاری (هسته تکامل)

سازگار با عقب: تولید کنندگان جدید → مصرف کنندگان قدیمی (اضافه c زمینه پیش فرض/nullable).
سازگار با جلو: تولید کنندگان قدیمی → مصرف کنندگان جدید (خواننده جدید غیر ضروری را نادیده می گیرد).
سازگار کامل: هر دو (هدف مطلوب برای رویدادها).
Breaking-changes: تغییر نام/حذف یک فیلد، تغییر نوع/معناشناسی، تغییر کلید/پارتیشن بندی.

قانون 1: رویدادها از طریق جمع تکامل مییابند، نه از طریق تغییر

قانون 2: حذف - تنها در نسخه MAJOR از این طرح پس از دوره مستهلک.

4) نسخه های معنایی و سیاست ها

سرگرد. جزئی است. PATCH 'برای هر مجموعه طرح/ویترین/ویژگی.

MAJOR - ناسازگار (موضوع جدید/جدول/مجموعه ویژگی، دو اجرا).
MINOR - سازگار (فیلدهای جدید nullable/default، مقادیر جدید enum).
PATCH - توضیحات/محدودیت ها/نظرات را ویرایش کنید.

Field life cycle: 'experimental → active → deprecated → removed' (با تاریخ و مالک).

5) ثبت نام طرح و قراردادهای داده

Schema Registry: نسخه های فروشگاه، سازگاری، تکامل و صاحبان.
قرارداد داده: طرح + کیفیت SLO + حریم خصوصی را رفع می کند (به بخش «اعتبار سنجی داده ها» مراجعه کنید).

مثال (Avro، پرداخت. deposit_accepted v1 7. 0):
json
{
"type":"record","name":"deposit_accepted","namespace":"payments",
"fields":[
{"name":"event_id","type":"string"},
{"name":"occurred_at","type":{"type":"long","logicalType":"timestamp-micros"}},
{"name":"user_id","type":"string"},
{"name":"brand","type":"string"},
{"name":"country","type":"string"},
{"name":"psp","type":"string"},
{"name":"method","type":"string"},
{"name":"amount","type":{"type":"bytes","logicalType":"decimal","precision":18,"scale":2}},
{"name":"currency","type":{"type":"enum","name":"Currency","symbols":["EUR","USD","TRY","BRL"]}},
{"name":"risk_score","type":["null","int"],"default":null},       // MINOR+
{"name":"kyc_level","type":["null",{"type":"enum","name":"Kyc","symbols":["L0","L1","L2","L3"]}],"default":null}
],
"compatibility":"FULL","owner":"team-payments"
}

6) الگوهای مهاجرت

6. 1 رویدادها (جریان)

فقط افزودنی: اضافه کردن زمینه با پیش فرض/nullable ؛ مصرف کنندگان قدیمی نمی شکنند.
پسوند Enum: کاراکترهای جدید MINOR در نظر گرفته می شوند، مصرف کنندگان ملزم به داشتن شاخه «else/unknown» هستند.
مهاجرت عمده: موضوع جدید "پرداخت. deposit_accepted است. v2 '، نوشتن دوگانه، خواندن سایه، سپس تغییر مصرف کنندگان.

6. 2 DWH/فروشگاه

میزهای سبز-آبی: طلایی. revenue_v2' کنار «v1» ؛ تحقق، تأیید، تغییر BI.
Backfill: پخش با عکس های فوری + ادغام idempoint (توسط کلید/نسخه).
SCD: نوع 2 برای تغییر آهسته ویژگی ها (محدودیت ها، KYC، وضعیت های VIP).

6. 3 فروشگاه ویژگی

سرویس دوگانه: مجموعه ویژگی های قدیمی به موازات جدید خدمت می کند ؛ مدل از طریق یک روتر سرویس می شود.
سازگاری نقطه در زمان: تکامل نباید شادی های PITA را از بین ببرد (زمان بندی/دانه بندی در MINOR بدون تغییر است).

7) طبقه بندی تغییرات (چک لیست)

امن (جزئی):
  • اضافه کردن فیلد «nullable/default» ؛
  • پسوند نام (با شاخه «ناشناخته» در مصرف کننده) ؛
  • اضافه کردن یک index/comment/description غیر کلیدی.
ایمن بودن مشروط:
  • مقیاس/واحد تغییر (به عنوان مثال، مقدار در سنت → ارز پایه) - فقط عمده
  • مرجع/انتقال مرجع - از طریق لایه ارائه.
شکستن (عمده):
  • تغییر نام/حذف یک فیلد
  • تغییر نوع/فرمت/کلید/پارتیشن
  • تغییر معانی (به عنوان مثال، «bonus _ amount» از «accored» → «written off»).

8) خطوط مدار و تست سازگاری

Schema-lint: سبک نام ('snake _ case')، برچسب های مورد نیاز ('owner'، 'doc'، 'pii')، فرمت تاریخ/ارز.
Compat-test: چک کردن نسخه جدید در برابر رجیستری (عقب/جلو/کامل).
تست های مصرف کننده قرارداد: هر سرویس یک «نمونه بار» و انتظار را فراهم می کند ؛ اجرای در CI هنگام تغییر طرح.
مجموعه داده های طلایی: مجموعه ای از نمونه های واقعی و «بد» (enum جدید، زمینه های خالی/اواخر، مقادیر مرزی مبالغ).

9) دایرکتوری ها، نام و محلی سازی

داده های مرجع (کشورها/ارزها/PSP/ارائه دهندگان): نسخه های فردی و به روز رسانی SLA ؛ کد رویداد را وارد نکنید.
محلی/مناطق زمانی: ذخیره UTC در رویدادها + محلی صریح برای ارائه.
قوانین حوزه های قضایی: پرچم های سن، محدودیت های تبلیغی - در قالب دایرکتوری ها با تاریخ عمل.

10) چند برند/چند قضایی و PII

جداسازی مستاجر: «نام تجاری»، «کشور»، «مجوز» - زمینه های اجباری با enum ؛ روبوسی بر روی آنها

سیاست PII در سطح طرح: زمینه های «pii = true» را علامت گذاری کنید، ماسک ها/نشانه گذاری را اعمال کنید ؛ در حوادث، فقط نشانه.

DSAR: حضور 'source _ id/trace _ id' برای حذف/بازیابی ؛ موانع قانونی بر سر مهاجرت های بزرگ

11) DDL و نسخه دریاچه

مهاجرت DDL: مهاجرت اعلانی (Liquibase/Flyway/dbt)، ذخیره سازی در VCS، بررسی توسط صاحب دامنه.
فرمت در دریاچه: آورو/پارکت - ثبت تکامل زمینه; at MAJOR - جدول/مسیر جدید «.../v2/».
پارتیشن بندی: تغییر قطعات (به عنوان مثال، 'تاریخ' → 'تاریخ، نام تجاری') - فقط از طریق ورود عمده و دو برابر.

12) نمونه هایی از iGaming

12. 1 روش های توسعه یافته PSP

اضافه شده 'روش = «MEFETE»' به enum.
انتشار جزئی از 'doposit _ accepted v1. 8. 0`; مشتریانی که MEFETE را نمی شناسند، یک شاخه را به «unknown _ method» ارسال می کنند.

12. 2 ارائه دهنده بازی زمین اضافه شده

بازی بود. round_finished' اضافه شده 'jackpot _ id' (nullable).
نمایش طلا game_rounds_v3' جزئی دریافت می کند ؛ گزارش های قدیمی کار می کنند، جکپات های جدید شمارش می شوند.

12. 3 ویژگی های RG

انتقال از Boolean "self _ excluded" به وضعیت "rg _ state ∈ {هیچ، محدود کردن، cooldown، self_excluded}' - MAJOR، موضوع جدید + نوشتن دوگانه + مهاجرت ویترین ها و مدل ها.

13) فرآیند تکامل (از ایده به سوئیچ)

1. پیشنهاد (ADR): چرا تغییر، نوع سازگاری، ارزیابی ریسک و مصرف کنندگان تحت تاثیر قرار گرفته است.
2. طراحی و قرارداد: طرح ثبت نام، semver، سیاست سازگاری.
3. تست ها: linters، compat، قراردادهای مصرف کننده، پخش در مجموعه های طلایی.

4. استقرار: دو نوشتن/آبی سبز/سایه خواندن ؛ هشدار ها

5. آشتی: تعادل کسب و کار/ناوردا (نگاه کنید به اعتبار سنجی داده ها).
6. سوئیچ: سوئیچ مصرف کنندگان/BI/ویژگی ها.
7. استهلاک: مسدود کردن طرح قدیمی، فضل دوره، حذف و بایگانی.

14) معیارها و SLO های تکامل

نرخ موفقیت مهاجرت، زمان اجرای دوگانه، سهم رویدادهای فرمت جدید، حجم backfill، تاخیر/طراوت.
حوادث سازگاری (P1/P2)، کیفیت پنجره پس از تعویض.
هزینه: $/TB سرریز، $/ساعت دو نوشتن، بار خوشه.
انطباق: 0 نشت PII، SLA DSAR/Legal Hold ملاقات کرد.

15) ابزار و مصنوعات

15. 1 سیاست سازگاری (رجیستری)

yaml schema: payments. deposit_accepted compatibility: FULL default_nulls: true enums:
currency: {allow_new_symbols: true, require_consumer_unknown_branch: true}
pii: false owners: ["team-payments"]
reviewers: ["data-governance","security-dpo"]

15. 2 گذرنامه مهاجرت (الگو)

yaml change_id: MIG-2025-041 scope: game. round_finished -> v3 type: MAJOR plan:
dual_write: true shadow_reads: consumers: ["gold-rounds","rg-models"]
backfill: {from: "2025-01-01", mode: "idempotent-merge"}
validation:
invariants: ["sum_bets = sum_wins + margin + bonuses"]
freshness_delta_p95_max: "PT5M"
switch_criteria:
error_rate_max: 0. 1%
kpi_diff_pp_max: 0. 5 deprecate_after: "2025-12-31"

15. 3 لاینتر از نام ها و انواع (قوانین)

'sake _ case'، زمان بندی UTC، DECIMAL (18. 2) برای مبالغ, «کشور» برای آلفا-2 ISO-3166-1, «ارز» برای ISO-4217.

نه 'free _ text' for enum fields; کتابهای مرجع - خارجی

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

0-30 روز (MVP)

1. فعال کردن Schema Registry + سیاست سازگاری برای رویدادهای کلیدی (پرداخت، game_rounds، کاربر).
2. خطوط/تست های کامپکت در CI ؛ دایرکتوری مالک و بررسی SLA.

3. الگوهای ADR و گذرنامه مهاجرت ؛ چک لیست اصلی

30-90 روز

1. آبی سبز برای فروشگاه طلا ؛ نوشتن دوگانه برای موضوعات مهم

2. آزمون مصرف کننده قرارداد برای خدمات اساسی ؛ مجموعه داده های طلایی

3. آشتی تفاوت خودکار و هشدار در هنگام تعویض ؛ گزارش هزینه ها

3-6 ماه

1. تنها فرآیند حذف/حذف با دوره فضل ؛ بایگانی و نگهداری قانونی.
2. طرح های رمزگذاری جغرافیایی/مستاجر خاص و کلید ؛ انواع DP برای بازارهای حساس.
3. فرهنگ لغت داده ها و نمودارهای خطی زنده.

17) RACI

حاکمیت داده (A/R): استانداردها، رجیستری، بررسی مهاجرت، انتشار مجدد.
صاحبان دامنه (R): معنی زمینه ها، کتاب های مرجع، invariants کسب و کار.
پلت فرم داده (R): ابزارهای رجیستری، تست های کامپکت، دو اجرا/backfills.
امنیت/DPO (A/R): سیاست های PII، جغرافیایی/مستاجر، DSAR/حقوقی نگه دارید.
SRE/Observability (C): هشدار، SLO تکامل، ظرفیت.
محصول/امور مالی (C): اعتبار KPI ها، تعویض پنجره ها.

18) ضد الگوهای

«ویرایش درست در پرواز» بدون نسخه و دو اجرا می شود.
تغییر نام به جای اضافه کردن یک فیلد جدید → خرابی های عظیم.
enum سخت بدون شاخه «ناشناخته» → قطره در ارزش های جدید.
دایرکتوری واحد «در کد» برای تمام حوزه های قضایی.
پر کردن مجدد بدون idempotent ادغام و تعادل چک.
سیاهههای مربوط با PII و بدون trace_id برای جستجو/DSAR.

19) بخش های مرتبط

اعتبار سنجی داده ها، Data Origin and Path، DataOps Practices، Analytics and Metrics API، Auditing and Versioning، امنیت داده ها و رمزگذاری، کنترل دسترسی، MLOps: بهره برداری از مدل.

مجموع

تکامل طرح ها یک فرآیند است، نه یک مهاجرت یک طرفه: رجیستری، نسخه ها و قابلیت همکاری ؛ دو اجرا و آبی سبز به جای «سوئیچ در نیمه شب»; آزمون سازگاری و invariants کسب و کار به جای شانس. بنابراین داده ها ثابت باقی می مانند، مدل ها قابل پیش بینی هستند، گزارش ها درست هستند و تنظیم کننده ها آرام هستند.

Contact

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

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

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

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

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

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