چرا پیگیری نسخه های هسته پلت فرم مهم است
«هسته پلت فرم» چیست و چرا نسخه ها مهم هستند
منظور از «هسته» دامنه هایی است که اشتباهات در آنها بخشیده نمی شود: کیف پول و دفتر کل، شرط بندی/محاسبه دور، میز نقدی (سپرده ها/پرداخت ها)، شناسایی (KYC/AML/RG)، قرارداد با ارائه دهندگان بازی و صورتحساب/گزارش.
هر گونه به روز رسانی در اینجا بر پول، مقررات، اعتماد تاثیر می گذارد. بنابراین، نسخه های هسته یک «شماره بسته» نیستند. json،" و یک ابزار مدیریت تغییر و مسئولیت.
چرا نسخه های پیگیری
1. مدیریت ریسک پول ما به وضوح می دانیم که کد پرداخت شده برای کدام دور/پرداخت - اختلافات را از بین می برد و تجزیه و تحلیل حوادث را سرعت می بخشد.
2. قابلیت همکاری از ادغام. ارائه دهندگان بازی/پرداخت به قراردادها وابسته هستند. Version = تضمین می کند که زمینه ها، وضعیت ها و قوانین کسب و کار یکسان هستند.
3. انطباق و حسابرسی تنظیم کننده نیاز به تکرارپذیری دارد: "چه ساخت، چه طرح، چه کنترل. "نسخه لنگر از پایه شواهد است.
4. انتشار سریع بدون خرابی. نسخه بندی اجازه می دهد تا شما را به انتشار تغییرات سازگار و رول قناری.
5. مدیریت حوادث. Rollback/roll-forward ساده هستند زمانی که مصنوعات برچسب گذاری شده، مهاجرت و ماتریس سازگاری وجود دارد.
6. شفافیت برای تیم های محصول هنگامی که «قرارداد تا XY پایدار است»، طرح جبهه/بازاریابی/تجزیه و تحلیل بدون شگفتی.
سیاست نسخه (SemVer برای هسته)
ما از SemVer 'MAJOR استفاده می کنیم. جزئی است. PATCH "+" بازبینی طرح "و" نسخه قرارداد رویداد ":- پچ (x.y. Z) - اصلاحات بدون تغییر API/طرح/منطق محاسبه. چرخش سریع است، چرخش بی اهمیت است.
- MINOR (x.Y.z) - برنامه های افزودنی سازگار: زمینه های جدید «nullable»، رویدادهای جدید، پرچم ها. مهاجرت «فقط گسترش»
- عمده (X.y. z) - تغییرات شکستن: حذف زمینه ها/رویدادها، تغییر قوانین محاسبه، تغییر ناپذیر دفتر کل جدید.
- «schemaVer» (DB/ledger/directories)، «contractVer» (رویدادهای اتوبوس و webhooks)، «calcVer» (موتور قوانین محاسبه/پاداش).
قراردادها و سازگاری عقب مانده
قراردادهای مصرف کنندگان داخلی و خارجی
API/webhooks/events: URL نسخه ('/v2/... ')، سرآیند («X-Contract-Version»)، فیلد «schemaVer» در payload.
رویدادها در اتوبوس: فیلد eventVer، ممنوعیت شکستن سکوت (تغییر در نوع فیلد، معنی وضعیت).
DB: گسترش → مهاجرت → مهاجرت قرارداد.
شما می توانید اضافه کنید، تغییر دهید - با دقت، حذف - با «سایه»
افزودن فیلدها - فقط nullable/default.
تغییر معنی تنها در MAJOR با انتشار موازی میدان «قدیمی» («_ میراث») برای دوره انتقال است.
حذف - پس از استهلاک و تله متری «چه کس دیگری می خواند قدیمی».
مهاجرت طرح و داده ها
گسترش: اضافه کردن یک ستون/فهرست، وارد یک رویداد جدید - بدون دست زدن به خوانندگان موجود.
مهاجرت: پر کردن/محاسبه مجدد مقادیر در پس زمینه (دسته/آنلاین)، شامل دو ورودی (دو نوشتن) در یک مکان جدید است.
قرارداد: ترجمه خوانندگان، حذف شاخه میراث در MAJOR بعدی.
ابزار: مهاجرت تحت پرچم ویژگی، جداول سایه، DDL آنلاین، متغیر در سطح پایگاه داده (چک محدودیت) و دامنه.
نسخه حل و فصل: پول، شرط، پاداش
به طور جداگانه «calcVer» را اصلاح کنید - نسخه منطق محاسبه پول (نرخ/نگه دارید/حل و فصل/VOID، قوانین پاداش و شرط).
در همه جا. حل و فصل، پرداخت. پاداش '،' تکمیل شده است. «calcVer» را بنویسید.
در یک اختلاف، شما می توانید محاسبه با منطق دقیقا همان است که در اثر در زمان این رویداد بود تکثیر.
قناری «calcVer» را با درصد ترافیک/منطقه/دسته بندی بازی ها تغییر دهید.
قابلیت مشاهده برای نسخه
برچسب ها در ردیابی: 'buildId', 'gitSha', 'semver', 'schemaVer', 'contractVer', 'calcVer' در تمام محدوده بحرانی (شرط, حل و فصل, پرداخت).
داشبورد بر اساس نسخه: خطاها، تأخیر، دلتاهای باله بر اساس نسخه.
هشدار به «رانش نسخه»: هنگامی که برخی از مصرف کنندگان تایر مدار اشتباه را می خوانند.
ایمنی و انطباق
مصنوعات نسخه شده (تصاویر، مهاجرت ها) امضا می شوند ؛ در رجیستری/سطل غیر قابل تغییر ذخیره می شود.
DR/audit: شما می توانید محیط را افزایش دهید «همانطور که در تاریخ T بود» (تصویر، مهاجرت به نسخه، عکس های فوری پایگاه داده).
بازبینی قوانین AML/RG/KYT نیز نسخه (policyVer) و سیاهههای مربوط به برنامه آنها است.
روش های انتشار
1. بررسی قرارداد: لیستی از تغییرات مشخص شده «PATCH/MINOR/MAJOR»، تاثیر بر مصرف کنندگان خارجی/داخلی.
2. تست های Backward-Compat: چک کردن مشتریان/رویدادهای قدیمی (تست های قرارداد).
3. راه اندازی قناری: 1-5٪ از ترافیک ؛ معیارهای P95، خطاها، اختلافات مالی.
4. تله متری استفاده از میراث: چه کس دیگری به «v1» گوش می دهد، کدام فیلدها قابل خواندن هستند - یک برنامه مستهلک.
5. بسته Comm: چه تغییراتی زمانی که پایان عمر نسخه های قدیمی تر، چگونه به مهاجرت.
ماتریس سازگاری نمونه (مثال)
نمونه هایی از قراردادها
رویداد اتوبوس با نسخه:جی سون
{
"رویداد": "دور. حل و فصل»، «eventVer»: «2. 4»، «schemaVer»: «دفتر کل 3. 1»، «calcVer»: «کیف پول-7. 2», «roundId»: «R-2025-10-17-PRAGM-12,» «شرط»: [{«betId «: «b _ 9f2»,» سهام»:» 5. 00 "،" پرداخت ": 180. 00 «، «نتیجه»:» WIN»}]، «ts»: «2025-10-17T14:23:12. 031Z, «traceId»: «tr_5f1»
}
REST با نسخه قرارداد:
GET/v2/کیف پول/تعادل
نسخه قرارداد ایکس: 2. 3
ضد الگوهای
تغییرات «آرام»: انواع/معانی فیلدها را بدون MAJOR تغییر دهید و از بین ببرید.
مهاجرت داده ها و منطق پول را در یک نسخه بدون نوشتن دوگانه ترکیب کنید.
پرچم های جهانی به جای نسخه (نمی تواند ترمیم شود، «چه عمل پس از آن»).
عدم تست قرارداد و کاتالوگ طرح.
حذف میراث بدون استفاده از تله متری - شرکا/داشبورد شکستن.
یک عدد «جایی در ویکی» بدون مصنوعات/امضا قابل بازتولید نیست.
نسخه اصلی چک لیست نظم و انضباط
استاندارد ها
- نسخه خانواده: 'semver'، 'schemaVer'، 'contractVer'، 'calcVer'، 'policyVer'.
- کاتالوگ داده با تاریخ و صاحبان.
قرارداد ها
- Versioned endpoints/events, هدر/نسخه درست.
- روش انحراف با تاریخ و تله متری استفاده.
مهاجرت ها
- گسترش → مهاجرت → قرارداد، دو نوشتن، онлайн -DDL.
- جداول سایه و ناورداها در سطح پایگاه داده.
نسخه های منتشر شده
- Canary rollout، ماتریس سازگاری، طرح برگشت.
- تصاویر امضا شده/مهاجرت، مصنوعات غیر قابل تغییر.
قابل مشاهده بودن
- برچسب های نسخه در ردیابی/سیاهههای مربوط/متریک.
- داشبورد خطا/تاخیر/فین دلتا توسط نسخه.
انطباق/دکتر
- ظهور تجدید پذیر از محیط زیست «در تاریخ T».
- سیاهههای مربوط به برنامه policyVer (AML/RG/KYT).
نسخه اصلی «بیمه» پول و سرعت توسعه محصول است. با آن، پلت فرم به طور قابل پیش بینی تکامل می یابد: فرصت های جدید بدون خرابی بیرون می آیند، امور مالی باقی می ماند، یکپارچگی سازگار است، ممیزی آرام است. نسخه ها را بخشی از فرآیند (قراردادها، مهاجرت، تله متری، انتشار) قرار دهید - و پشتیبان شما سالها تغییر را بدون از دست دادن P&L و شهرت تحمل خواهد کرد.