Ինչու է կարևոր հետևել պլատֆորմի միջուկի տարբերակին
Ինչ է պլատֆորմի միջուկը և ինչու տարբերակները քննադատական են
«Միջուկի» տակ մենք հասկանում ենք օրինագծերը, որտեղ սխալները չեն ներում 'դրամապանակ և դահուկորդ, տոկոսադրույքներ/հաշվարկներ, ձայներիզներ (ավանդներ/վճարումներ), նույնականացում (KYC/AML/RG), խաղային պրովայդերների և բիլինգի/հաշվետվությունների հետ պայմանագրեր։
Այստեղ ցանկացած նորարարություն ազդում է փողի, կարգավորիչի, վստահության վրա։ Այսպիսով, միջուկի տարբերակները "համարը package-ում չեն։ json", իսկ փոփոխության կառավարման գործիքը և պատասխանատվությունը։
Ինչու՞ հետևել տարբերակներին
1. Ֆինանսական փողի կառավարում։ Հստակ գիտենք, թե ինչ ծածկագիր է հաշվարկվել ինչ փուլում/2019 - ը, հանում է վեճերը և արագացնում վերլուծությունը։
2. Ինտեգրման համատեղելիությունը։ Խաղերի/վճարումների պրովայդերները կապված են պայմանագրերի վրա։ Տարբերակը = երաշխավոր է, որ դաշտերը, կարգավիճակները և բիզնես կանոնները համընկնում են։
3. Կոմպլասենսը և աուդիտը։ Կարգավորիչը պահանջում է վերարտադրողականություն. <<Ինչ build, ինչ սխեմա, որը վերահսկում է>>։ Տարբերակը ապացուցողական հիմքի խարիսխն է։
4. Արագ ֆորումները առանց դաունթայմի։ Տարբերակումը թույլ է տալիս արտադրել միասին փոփոխություններ և փակցնել։
5. Կառավարումը։ Rollback/roll-forward-ը պարզ է, երբ կան թեստավորված արտեֆակտներ, կոդեր և մատրիցներ։
6. Թափանցելիությունը սննդի թիմերի համար։ Երբ «պայմանագիրը միացված է մինչև X.Y», ճակատները/մարքեթինգը/վերլուծությունը պլանավորում են առանց անակնկալների։
Տարբերակների քաղաքականությունը (SemVer միջուկի համար)
Մենք օգտագործում ենք SemVer 'MAJOR-ը։ MINOR. PATCH '+ «սխեմայի վերանայումը» և «իրադարձությունների պայմանագրի տարբերակը»
PATCH (x.y. Z) - ուղղումներ առանց API/սխեմաների/հաշվարկման տրամաբանության։ Rollout արագ, rollback Trivial։
MINOR (x.Y.z) - համատեղ ընդարձակումներ. Նոր դաշտեր «nullable», նոր իրադարձություններ, դրոշներ։ «Expand-only» կոմպոզիան։
MAJOR (X.y. z) - կոտրիչ փոփոխություններ 'դաշտերի/իրադարձությունների հեռացում, հաշվարկման կանոնների փոփոխություն, ժապավենի նոր ինվարանտներ։
Մենք ավելացնում ենք
«SchemaVer» (BD/leger/winds), «www.ractVer» (անվադողերի և վեբհուկի իրադարձությունները), «calcVer» (/բոնուսային կանոնների հաշվարկման շարժիչ)։
Պայմանագրեր և հակադարձ համատեղելիություն
Պայմանագրեր արտաքին և ներքին սպառողների համար
API/Webhuki/իրադարձություններ 'URL ('/v2/...), վերնագիր («X-Medract-Version»), «schemaVer» դաշտը ծանրաբեռնվածության մեջ։
Անվադողերի իրադարձությունները '«eventVer» դաշտը, silent-breaking արգելքը (դաշտի փոփոխությունը, կարգավիճակների իմաստը)։
ԲԴ ՝ expand promigrate production-ը։
Դուք կարող եք ավելացնել, փոխել 'զգույշ, հեռացնել' «ստվերով»
Դաշտերի ավելացումը միայն nullable/c դեֆոլտ է։- Իմաստի փոփոխությունը միայն MAJOR-ում է '«հին» դաշտի զուգահեռ հրապարակումով («_ legacy») անցումային ժամանակահատվածի համար։
- Հեռացում 'դեպրեքսից և հեռուստացույցից հետո «ով դեռ կարդում է հինը»։
Սխեմաների և տվյալների իրականացումը
Expand: ավելացնել սյունակը/ինդեքսը, ներկայացնել նոր իրադարձություն 'առանց գոյություն ունեցող ընթերցողների։
Migrate: լցնել/հաշվել արժեքները ֆոնի վրա (batch/onts), ներառել կրկնակի ձայնագրությունը (dult-write) նոր վայրում։
Euract: թարգմանել ընթերցողներին, հեռացնել legacy-ճյուղը հաջորդ MAJOR-ում։
Գործիքներ ՝ feature-flag, shadow աղյուսակներ, առցանց DDL, invariants BD մակարդակում (wwww.k-constrainment) և տիրույթում։
Հաշվարկների տարբերակումը 'գումար, տոկոսադրույքներ, բոնուսներ
Առանձին-առանձին ամրագրեք 'calcVer' - դրամավարկային հաշվարկի տրամաբանության տարբերակը (տոկոսադրույքը/hold/settle/VOID, բոնուսների և հավաքման կանոնները)։
Յուրաքանչյուր "round. settled`, `payout. completed`, `bonus. ձայնագրեք 'calcVer'։- Բանավեճի ժամանակ դուք կարող եք վերարտադրել հենց այն տրամաբանությունը, որը գործում էր իրադարձության պահին։
- Փոխակերպումը 'calcVer' արեք կանարյան/խաղային կատեգորիաների տոկոսով։
Observability տարբերակի համար
Թրեյսի թեգերը ՝ «buildId», «gitSha», «semver», «schemaVer», «www.ractVer», «calcVer» բոլոր կրիտիկական սպեններում (շտաբը, settle, payout)։
Dashbords-ը տարբերակով 'սխալներ, լատենտ, ֆին-դելտա տարբերակների կտրվածքում։- Ալերտները «տարբերակիչ դրեյֆի» վրա, երբ որոշ սպառողներ անվադողեր չեն կարդում այդ սխեման։
Անվտանգություն և ընկերակցություն
Տարբերակված արտեֆակտները (պատկերներ, օրինակներ) ստորագրված են. պահվում են անփոփոխ registry/bucket-ում։
DR/աուդիտ. Դուք կարող եք բարձրացնել շրջապատը «Ինչպես էր T-ի ամսաթվով» (պատկեր, որը նախատեսված էր մինչև տարբերակը, BD սարքավորումը)։
AML/RG/KYT կանոնները նույնպես տարբերակներ են (policyVer) և դրանց օգտագործման լոգները։
Օրինագծերի ընթացակարգերը
1. Պայմանագիրը ռևվ '«PATCH/MINOR/MAJOR» նշանի հետ փոփոխությունների ցանկը, արտաքին/ներքին սպառողների վրա ազդեցությունը։
2. Backwards-compat թեստերը 'ստուգումներ հին հաճախորդների/իրադարձությունների վրա (պայմանագրային թեստեր)։
3. Կանարեքային rollout: 1-5 տոկոսը ռուբլիա; p95, սխալներ, տարբերություններ։
4. Telemetry օգտագործման legacy: Ո՞ վ է լսում «v1», ինչ դաշտեր են կարդում 'դեպրեսիայի պլանը։
5. Կոմմի փաթեթ 'ինչ է փոխվում, երբ end-of-life հին տարբերակները, ինչպես գաղթել։
Ստանդարտ մատրիցա (օրինակ)
Օրինակներ
Անվադողերի իրադարձությունը տարբերակով
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","outcome":"WIN"}], "ts": "2025-10-17T14:23:12. 031Z", "traceId": "tr_5f1"
}
REST-ը պայմանագրի տարբերակով
GET /v2/wallet/balance
X-Contract-Version: 2. 3
Anti-patterns
«Հանգիստ» փոփոխություններ 'փոխել դաշտերի տեսակները/իմաստները առանց MAJOR-ի և դեպրեսիայի։- Խառնել տվյալների միգրացիան և փողի տրամաբանությունը մեկ օրինագծում առանց dox-write-ի։
- Համաշխարհային դրոշները տարբերակների փոխարեն (անհնար է վերականգնել, «ինչ էր գործում այդ ժամանակ»)։
- Պայմանագրային թեստերի և աշխատանքային սխեմաների բացակայությունը։
- Legacy-ը առանց օգտագործման հեռուստաչափության, կոտրվում են գործընկերները/dashbords։
- «Ինչ-որ տեղ վիկայի» մեկ համարը, առանց արտեֆակտների/ստորագրությունների, չի վերարտադրվում։
Chek-Show կարգապահություն
Ստանդարտները
- Տարբերակների ընտանիքը '«semver», «schemaVer», «www.ractVer», «calcVer», «policiVer»։
- Տվյալների/սխեմաների կատալոգը (www.calog) պատմությամբ և սեփականատերերի հետ։
Պայմանագրեր
- Տարբերակված էնդպոինտներ/իրադարձություններ, header/դաշտային տարբերակներ։
- Deprecation-ընթացակարգը օգտագործման ամսաթվերի և հեռուստաչափության հետ։
Մոսկվան
- Expand→Migrate→Contract, dual-write, онлайн-DDL.
- Shadow աղյուսակները և invariants BD մակարդակում։
Ալգորիթմներ
- Canarech rollout, մատրիցա, rollback պլան։
- Ստորագրված պատկերներ/108, անփոփոխ արտեֆակտներ։
Observability
- Տարբերակների թեգերը թրեյսի/լոգարանների/մետրերի մեջ։
- Սխալների/լատենտության/ֆին-դելտա տարբերակներով։
Complaens/DR
- Վերարտադրված շրջակա միջավայրի բարձրացումը «T-ի ամսաթվով»։
- PolicyVer (AML/RG/KYT)։
Միջուկի տարբերությունը փողի «ապահովագրությունն» է և ապրանքի զարգացման տեմպը։ Դրա հետ պլատֆորմը կանխատեսելիորեն զարգանում է. Նոր հնարավորությունները դուրս են գալիս առանց խզման, ֆինանսները մնում են վերարտադրելի, համագործակցելի, աուդիտ 'հանգիստ։ Դարձրեք գործընթացի մի մասը (պայմանագրեր, պայմանագրեր, հեռաչափեր, օրինագծեր), և ձեր backend-ը կպահանջի փոփոխությունների տարիներ առանց PP&L և հեղինակության։