プラットフォームカーネルバージョンを追跡することが重要な理由
「プラットフォームコア」とは何か、そしてなぜバージョンが重要なのか
「コア」とは、財布と台帳、賭け/ラウンドの計算、キャッシュデスク(預金/支払い)、識別(KYC/AML/RG)、ゲームプロバイダーとの契約、請求/報告。
ここでのアップデートは、お金、規制、信頼に影響します。したがって、カーネルバージョンは「パッケージ番号」ではありません。json"、および変更および責任管理ツール。
バージョンを追跡する理由
1.マネーリスク管理。どのラウンド/支払いのために支払ったコードを明確に知っています-紛争を取り除き、インシデントの分析をスピードアップします。
2.統合の相互運用性。ゲーム/決済プロバイダーは契約に関連付けられています。Version=フィールド、ステータス、およびビジネスルールが同じであることを保証します。
3.コンプライアンスと監査。レギュレータは、再現性を必要とします。"バージョンは証拠基地のアンカーです。
4.ダウンタイムのない高速リリース。バージョン管理では、互換性のある変更をリリースし、カナリアをロールすることができます。
5.インシデント管理。タグ付けされたアーティファクト、マイグレーション、および互換性マトリックスがある場合、ロールバック/ロールフォワードは簡単です。
6.製品チームの透明性。「X。Yまでの契約が安定している」場合、/マーケティング/分析計画は驚くことなく計画します。
バージョンポリシー(SemVer for Kernel)
SemVer 'MAJORを使用しています。マイナー。PATCH'+「スキーマリビジョン」と「イベント契約バージョン」:- PATCH (x。y。Z)-API/スキーム/計算ロジックを変更せずに修正。ロールアウトは速く、ロールバックは些細です。
- MINOR (x。Y。z)-互換性のある拡張:新しい「nullable」フィールド、新しいイベント、フラグ。「拡張専用」移行。
- MAJOR (X。y。z)-変更を破る:フィールド/イベントの削除、計算ルールの変更、新しい元帳不変量。
- 'schemaVer' (DB/ledger/ディレクトリ)、 'contractVer'(バスイベントとwebhook)、 'calcVer'(計算/ボーナスルールエンジン)。
契約と下位互換性
外部および内部の消費者のための契約
API/webhooks/events:バージョン管理URL ('/v2/……')、ヘッダー('X-Contract-Version')、ペイロードの'schemaVer'フィールド。
バス内のイベント:'eventVer'フィールド、サイレントブレイク禁止(フィールドタイプの変更、ステータスの意味)。
DB:展開→移行→契約移行。
「影」で追加、変更、慎重に削除できます"
フィールドの追加-nullable/defaultのみ。
意味の変更は、移行期間の「古い」フィールド('_legacy')が並行して公開されているMAJORでのみ行われます。
削除-非推奨とテレメトリーの後に「他の誰が古いを読み取ります」。
スキーマとデータの移行
展開:カラム/インデックスを追加し、既存のリーダーに触れることなく、新しいイベントを入力します。
マイグレート:background (batch/online)の値を塗りつぶしたり再計算したり、新しい場所にダブルエントリ(dual-write)を含める。
契約:読者を翻訳し、次のMAJORのレガシーブランチを削除します。
ツール:フィーチャーフラグ、シャドーテーブル、オンラインDDL、データベースレベルの不変量(チェック制約)およびドメインの移行。
決済バージョン: お金、賭け、ボーナス
「calcVer」-マネー計算ロジックのバージョン(rate/hold/settle/VOID、ボーナス、賭けルール)を個別に修正します。
すべてのラウンドで。決済'、'ペイアウト。'、'ボーナスを完了しました。'calcVer'と書く。
紛争では、イベント時に有効だったロジックを正確に計算を再現することができます。
「calcVer」カナリアをトラフィック/地域/ゲームのカテゴリの割合で切り替えます。
バージョン管理の観察可能性
トレース内のタグ:'buildId'、 'gitSha'、 'semver'、 'schemaVer'、 'contractVer'、 'calcVer'のすべてのクリティカルスパン(ベット、セトル、ペイアウト)。
バージョンごとのダッシュボード:エラー、レイテンシ、バージョンごとのフィンデルタ。
「バージョンドリフト」へのアラート:一部のタイヤ消費者が間違った回路を読み取ったとき。
安全性とコンプライアンス
バージョン管理されたアーティファクト(イメージ、マイグレーション)は署名されます。変更できないレジストリ/バケットに格納されます。
DR/監査:環境を「日付Tにあったように」(イメージ、バージョンへの移行、データベーススナップショット)上げることができます。
AML/RG/KYTルールのリビジョンは、バージョン(policyVer)とそのアプリケーションログでもあります。
リリース手順
1.契約レビュー:「PATCH/MINOR/MAJOR」とマークされた変更のリスト、外部/内部の消費者への影響。
2.後方コンパットテスト:古いクライアント/イベントのチェック(コントラクトテスト)。
3.カナリアロールアウト:トラフィックの1-5%。p95指標、エラー、財務的不一致。
4.レガシーを使用するテレメトリー:誰が「v1」を聞いているのか、どのフィールドが読めるのか、非推奨プランです。
5.Commパッケージ:エンドオブライフの古いバージョン、移行方法が変更されます。
サンプル互換性マトリックス(例)
契約の例
バージョンのバスイベント:json
{
"event": "round。settled'、 "eventVer": "2。4」、 「schemaVer」: 「ledger-3。1」、 「calcVer」: 「wallet-7。2、""roundId":"R-2025-10-17-PRAGM-12,""bets': [{"betId": "b_9f2"、 "stake": "5。00「、「payout」:」 180。00、""結果":"WIN"}]、"ts': "2025-10-17T14:23:12。031Z," "traceId": "tr_5f1"
}
契約バージョンのREST:
GET/v2/ウォレット/バランス
X-Contract-Version: 2。3
アンチパターン
「Quiet」の変更:MAJORなしでフィールドのタイプ/意味を変更し、非推奨にします。
データマイグレーションとマネーロジックを、デュアルライトなしで1つのリリースでミックスします。
バージョンの代わりにグローバルフラグ(「what acted then」)を復元することはできません。
契約テストとスキーマカタログの欠如。
テレメトリーを使用せずにレガシーを削除-パートナー/ダッシュボードが壊れます。
アーティファクト/署名のない「wikiのどこか」の1つの番号は再現できません。
コアバージョンの規律チェックリスト
スタンダード
- バージョンファミリー:'semver'、 'schemaVer'、 'contractVer'、 'calcVer'、 'policyVer'。
- 履歴と所有者のデータカタログ。
プライバシーポリシー
- バージョン管理されたエンドポイント/イベント、ヘッダー/バージョンフィールド。
- 日付と使用のテレメトリーによる偏差手順。
マイグレーション
- Expand→Migrate→Contract、 dual-write、 DDL。
- データベースレベルのシャドウテーブルと不変量。
リリースについて
- カナリアロールアウト、互換性マトリックス、ロールバック計画。
- 署名された画像/移行、変更不可能なアーティファクト。
Observability(可視性
- trace/logs/metricsのバージョンタグ。
- バージョンごとにエラー/レイテンシ/Fin Deltaダッシュボード。
コンプライアンス/DR
- 再現可能な環境の上昇「日付に」T。
- policyVerアプリケーションログ(AML/RG/KYT)。
コアバージョニングは、お金の「保険」と製品開発のペースです。それで、プラットフォームは予測可能に進化します。新しい機会が故障なく出てくる、財政が再現可能なまま、統合が互換性があり、監査が穏やかです。バージョンをプロセスの一部(契約、移行、テレメトリー、リリース)にすると、バックエンドはP&Lと評判を損なうことなく長年の変更に耐えます。