Սակագնային սահմաններից դուրս՝ դեպի Codex և Sora մուտքի ընդլայնում
Ջոնա Քոհեն, Տեխնիկական անձնակազմի անդամ
Անցած տարվա ընթացքում թե՛ Codex-ը, թե՛ Sora-ն արագորեն ընդունվել են, և դրանց օգտագործումը արագորեն գերազանցել է մեր սկզբնական ակնկալիքները։ Մենք նկատել ենք հետևողական օրինաչափություն. օգտատերերը խորասուզվում են, գտնում են իրական արժեք, և ապա բախվում են արագության սահմանաչափերին։
Սահմանաչափերը կարող են օգնել հարթեցնել պահանջարկը և ապահովել արդար հասանելիություն, սակայն երբ օգտատերերը արժեք են ստանում, կոշտ սահմանափակումը կարող է հիասթափեցնող լինել։ Մենք ցանկանում էինք օգտատերերի համար միջոց, որը թույլ կտար նրանց շարունակել՝ միաժամանակ պաշտպանելով համակարգի արդյունավետությունը և մեր մոտեցման նկատմամբ օգտատերերի վստահությունը։
Սա լուծելու համար մենք ստեղծեցինք իրական ժամանակում մուտքի համակարգ, որը հաշվում է օգտագործումը։ Այդ շարժիչի շերտերից մեկը վարկեր ձեռք բերելու հնարավորությունն է։ Երբ օգտատերերը գերազանցում են իրենց արագության սահմանաչափերը, կրեդիտները թույլ են տալիս նրանց շարունակել օգտվել մեր արտադրանքներից՝ ծախսելով իրենց կրեդիտային մնացորդը։
Սրա ներքո գտնվում է բարդ համակարգ, որը միավորում է սահմանափակումները, իրական ժամանակում օգտագործման հետևումը և վարկային մնացորդները մեկ մուտքի մոդելում։ Այս գրառումը ներկայացնում է, թե ինչու Codex-ի և Sora-ի ընդլայնումը պահանջեց վերանայել մուտքի վերահսկումը, ինչպես ապացուցելիորեն ճիշտ, իրական ժամանակում գործող համակարգը համադրում է արագության սահմանափակումներն ու կրեդիտները յուրաքանչյուր հարցման համար, և ինչպես այդ հիմքը այժմ բացում է լրացուցիչ մուտք երկու արտադրանքների համար։
Հեռվից դիտարկելիս՝ ավանդական հասանելիության մոդելները հակված են ստիպել ընտրություն կատարել։
- Արագության սահմանաչափերը սկզբում կարող են օգտակար լինել, բայց երբ դրանք սպառվում են, օգտատերերին թողնում են վատ փորձառությամբ՝ «ավելի ուշ վերադարձեք»։
- Օգտագործման վրա հիմնված հաշվարկումը ճկուն է, բայց օգտատերերը վճարում են առաջին թոքենից՝ ինչը իդեալական չէ վաղ ուսումնասիրությունը աջակցելու համար
Codex-ի և Sora-ի համար ոչ մեկը ինքնին բավարար չէր։ Եթե մենք պարզապես բարձրացնեինք սահմանաչափերը, մենք կկորցնեինք պահանջարկի հարթեցման և արդարության կարևոր վերահսկողությունները և կսպառեինք մեր կարողությունները՝ բոլորին սպասարկելու համար։ Եթե մենք ամբողջությամբ ապավինեինք ասինխրոն օգտագործման հաշվարկին, ապա կստեղծեինք ուշացումներ, գերծախսեր կամ հաշտեցման խնդիրներ՝ ճիշտ այն խնդիրները, որոնք օգտատերերը նկատում են, երբ առավելագույնս ներգրավված են։
Փոխարենը մեզ անհրաժեշտ էր մեկ միասնական հիբրիդային համակարգ, որը համատեղում է իրական ժամանակի սահմանաչափերը «վճարիր ըստ օգտագործման» մուտքի հնարավորության հետ.
Այս համակարգը պետք է.
- Կիրառել սահմանաչափերը մինչև դրանց հասնելը
- Անխափան անցում կատարեք կրեդիտների նույն հարցման շրջանակում
- Կայացներ այդ որոշումը իրական ժամանակում
- Կրեդիտների սպառումը հետևելիս լինել խիստ ճշգրիտ և աուդիտի ենթակա
Մեր հիմնական հայեցակարգային փոփոխություններից մեկը հասանելիությունը որպես որոշումների հոսք մոդելավորելն էր։ «Սա թույլատրելի՞ է» հարցնելու փոխարեն՝ մենք հարցնում ենք՝ «որքա՞ն է թույլատրվում, և որտեղի՞ց»։ Երբ հաշվում է օգտագործումը, համակարգը անցնում է հետևյալ հաջորդականությամբ.
Այս մոդելը արտացոլում է, թե ինչպես են օգտատերերը իրականում ընկալում արտադրանքը։ Արագության սահմանաչափերը, անվճար մակարդակները, վարկերը, ակցիաները և ձեռնարկության իրավունքները բոլորը նույն որոշումների շտեմարանի տարբեր շերտեր են։ Օգտատիրոջ տեսանկյունից, նրանք «համակարգեր չեն փոխում»՝ նրանք պարզապես շարունակում են օգտագործել Codex-ը և Sora-ն։ Ահա թե ինչու կրեդիտները անտեսանելի են թվում. դրանք պարզապես ևս մեկ տարր են «ջրվեժում»։
Մենք գնահատել ենք երրորդ կողմի հաշվարկման և չափման հարթակները՝ կրեդիտների սպառումը կառավարելու նպատակով։ Դրանք հարմար են հաշիվ-ապրանքագրերի և հաշվետվությունների համար, սակայն չեն բավարարում երկու կարևոր պահանջներին.
Երբ օգտատերը հասնում է սահմանաչափին և ունի հասանելի կրեդիտներ, համակարգը պետք է իմանա անմիջապես։ Լավագույն ջանքերով կամ ուշացած հաշվարկը կարող է դրսևորվել որպես անակնկալ արգելափակումներ, անհամապատասխան մնացորդներ և սխալ գանձումներ։ Codex-ի և Sora-ի նման ինտերակտիվ արտադրանքների դեպքում այդ ձախողումները դառնում են տեսանելի և հիասթափեցնող։
Մենք նաև պետք է ապահովեինք թափանցիկություն յուրաքանչյուր արդյունքի վերաբերյալ.
- Ինչո՞ւ է հարցումը թույլատրվել կամ արգելափակվել
- Որքան օգտագործում է սպառվել
- Որ սահմանափակումները կամ հավասարակշռություններն են կիրառվել
Այս հնարավորությունը պետք է սերտորեն ինտեգրված լիներ մեր որոշումների հոսքի մեջ, այլ ոչ թե լուծվեր մեկուսացված՝ առանձին օգտագործման հաշվարկման հարթակում, որը տեսնում էր միայն տեղի ունեցածի մի մասը։ Օգտատերերին մեր արտադրանքներին մուտք ապահովելու համար՝ առանց վստահությունը վտանգելու, մեզ անհրաժեշտ էր լիարժեք վերահսկողություն ճշգրտության, ժամանակի և դիտարկելիության վրա։ Դա մեզ մղեց դեպի ներքին լուծում։
Դա ապահովելու համար մենք ստեղծեցինք բաշխված օգտագործման և մնացորդի համակարգ, որը հատուկ նախագծված է համաժամանակյա մուտքի որոշումների համար։
Ընդհանուր առմամբ, համակարգը.
- Հետևում է յուրաքանչյուր օգտատիրոջ և յուրաքանչյուր ֆունկցիայի օգտագործմանը
- Պահպանում է սահմանաչափի պատուհանները
- Իրական ժամանակում պահպանում է վարկային մնացորդները
- Դեբետային մնացորդները իդեմպոտենտ կերպով մշակվում են հոսքային ասինխրոն պրոցեսորի միջոցով
Յուրաքանչյուր հարցում անցնում է մեկ միասնական գնահատման ուղիով, որը իրական ժամանակում որոշում է, թե որքան օգտագործում է թույլատրվում՝ սինխրոն կերպով սպառելով արագության սահմանաչափերից և, անհրաժեշտության դեպքում, ստուգելով բավարար վարկերի առկայությունը։ Այնուհետև վերադարձնում է մեկ վերջնական արդյունք՝ միաժամանակ վարկերի ցանկացած դեբետները կարգավորելով ասինխրոն կերպով։ Սա ապահովում է համահունչ վարքագիծ արտադրանքների համար և վերացնում է թիմերի միջև կրկնվող տրամաբանությունը։
Այս համակարգի նախագծման հիմնական սկզբունքներից մեկն այն է, որ մենք պետք է կարողանանք ապացուցել, որ մեր հաշվարկը ճիշտ է։ Սա արտացոլում է մեր վարկային աջակցության արմատները, որոնք սկիզբ են առել ձեռնարկատիրական հաճախորդներից։ Վերևում ներկայացված համակարգի դիագրամում մենք ունենք երեք առանձին տվյալների հավաքածու, որոնք բոլորը փոխկապակցված են:
- Արտադրանքի օգտագործման իրադարձություններ. Ինչ է օգտատերը իրականում արել
- Դրամայնացման իրադարձություններ. Ինչի համար ենք գանձում օգտատիրոջից՝ օգտագործման համար
- Մնացորդի թարմացումներ. Որքանով ենք ճշգրտել օգտատիրոջ վարկային մնացորդը և ինչու
Այս տվյալների հավաքածուները պատահական կողմնակի արդյունք չեն. դրանք իրականում համակարգը շարժման մեջ են դնում, և յուրաքանչյուր տվյալների հավաքածու հաջորդը գործարկում է։ Տարանջատելով տեղի ունեցածը, դրա հետ կապված ցանկացած գանձումներ և այն, ինչ մենք դեբետագրել ենք, մենք կարող ենք յուրաքանչյուր շերտը անկախ աուդիտ անել, վերարտադրել և հաշտեցնել։ Սա միտումնավոր փոխզիջում է, որտեղ մենք առաջնահերթություն ենք տալիս ապացուցելի ճշտությանը՝ այն գնով, որ վարկային մնացորդի թարմացումները մի փոքր ուշանում են։ Ինչպես մենք հասանք այս արդյունքին.
- Արտադրանքի օգտագործման իրադարձությունները հրապարակվում են բոլոր օգտատերերի ակտիվությունների համար՝ անկախ նրանից՝ դրանք հանգեցնում են կրեդիտների սպառման, թե ոչ։ Սա ապահովում է օգտատերերի ակտիվության աուդիտի հետք և թույլ է տալիս մեզ բացատրել, թե ինչու ենք գանձել կամ չենք գանձել կրեդիտներ։
- Յուրաքանչյուր իրադարձություն ունի կայուն իդեմպոտենտության բանալի, ուստի կրկնափորձերը, վերարտադրումները կամ աշխատողի վերագործարկումները երբեք չեն կարող կրկնակի դեբետավորել մնացորդը, ինչը կանխում է կրկնակի գանձումը։ Դա նաև թույլ է տալիս մեզ գործարկել խմբային հաշտեցում՝ անցանց ստուգելու մեր աշխատանքը։
- Մենք իրականացնում ենք ասինխրոն (բայց դեռևս գրեթե իրական ժամանակում) մնացորդի թարմացումներ՝ սինխրոն թարմացումների փոխարեն՝ աուդիտի հետք ստեղծելու նպատակով։ Մենք հանդուրժում ենք օգտատիրոջ մնացորդի թարմացման փոքր ուշացում, որպեսզի կարողանանք ապացուցել, որ համակարգը գործում է և վստահեցնել մեր օգտատերերին, որ մենք նրանց սխալ չենք հաշվարկում։ Երբ այդ կարճ ուշացումը հանգեցնում է նրան, որ մենք գերազանցում ենք օգտատիրոջ կրեդիտային մնացորդը, մենք այն ավտոմատ կերպով վերադարձնում ենք. մենք ապացուցելի ճշգրտությունն ու օգտատիրոջ վստահությունը գերադասում ենք խիստ կիրառման նկատմամբ։
- Մենք նվազեցնում ենք Վարկային Մնացորդը և մեկ ատոմային տվյալների բազայի գործարքի շրջանակում ավելացնում ենք Մնացորդի թարմացում գրառումը։ Հաշվի մնացորդի թարմացումները սերիականացվում են, ուստի միաժամանակյա հարցումները չեն կարող մրցակցել նույն կրեդիտները ծախսելու համար։ Մնացորդի թարմացում գրառումը պարունակում է ինչպես դեբետային գումարը, այնպես էլ հղում դեպի դրամայնացման իրադարձությունը, որը գործարկել է թարմացումը։ Սա մեկ տվյալների բազայի գործարքի մեջ ներառելը երաշխավորում է, որ մենք ունենք աուդիտի հետք՝ վարկային մնացորդի յուրաքանչյուր ճշգրտման համար։
Այս ամբողջ խստությունը մի նպատակ ունի՝ հասանելիությունը դարձնել պարզ և անվտանգ։ Երբ մարդիկ ստեղծում կամ կոդավորում են, նրանք չպետք է մտածեն՝ արդյոք հարցումը կանցնի, արդյոք նրանցից ավել կգանձվի, կամ արդյոք նրանց մնացորդը ճշգրիտ է։ Օգտագործումը, հաշվարկը և մնացորդները ապացուցելիորեն ճիշտ դարձնելով՝ մենք օգտատերերին տրամադրում ենք մի համակարգ, որը չի շեղում նրանց փորձառությունից։ Ահա թե ինչն է մեզ թույլ տալիս կոշտ կանգառները փոխարինել շարունակական հասանելիությամբ, և դա է, ինչն է կրեդիտները դարձնում կիրառելի իրական աշխատանքի ընթացքում, ոչ թե միայն հաշիվ-ապրանքագրի վրա։
Մեր մոտեցման հիմնական սկզբունքը օգտատերերի արագընթացը պաշտպանելն է։ Յուրաքանչյուր ճարտարապետական որոշում կապվում է օգտատիրոջը տեսանելի արդյունքի հետ՝ իրական ժամանակի մնացորդները կանխում են ավելորդ ընդհատումները, ատոմային սպառումը կանխում է կրկնակի գանձումը, իսկ միասնական մուտքի տրամաբանությունը ապահովում է կանխատեսելի վարքագիծ։ Արդյունքն այն է, որ մարդիկ կարող են ավելի երկար աշխատել, ավելի խորությամբ ուսումնասիրել և նախագծերը ավելի առաջ տանել՝ առանց կոշտ կանգառների կամ պլանի վաղաժամ փոփոխությունների հանդիպելու։
Երբ օգտատերերը ներգրավված են, համակարգը պետք է աջակցի նրանց շարունակելուն, ոչ թե խանգարի։ Սահմանափակումներն ու վարկերը դառնում են անտեսանելի ֆոնում։
Այդ փորձառությունը ստեղծելը պահանջում էր վերանայել մուտքը, օգտագործումը և հաշվարկումը որպես միասնական համակարգ և կառուցել ենթակառուցվածք, որը ճշգրտությունը դիտարկում է որպես առաջնակարգ արտադրանքի հատկություն։ Նույն հիմքը ժամանակի ընթացքում կարող է ընդլայնվել՝ ընդգրկելով ավելի շատ ապրանքներ. Codex-ը և Sora-ն միայն սկիզբն են։


