Lil hinn mir-rate limits: nespandu l-aċċess għal Codex u Sora
Minn Jonah Cohen, Membru tal-Persunal Tekniku
Matul l-aħħar sena, kemm Codex kif ukoll Sora raw adozzjoni mgħaġġla, bl-użu malajr jaqbeż dak li konna stennejna oriġinarjament. Rajna xejra konsistenti: l-utenti jibdew jużawhom, isibu valur reali, u mbagħad jolqtu r-rate limits.
Ir-rate limits jistgħu jgħinu biex jillixxaw id-domanda u jiżguraw aċċess ġust; madankollu, meta l-utenti jkunu qed jieħdu valur, li jolqtu waqfa iebsa jista’ jkun frustranti. Ridna mod biex l-utenti jkunu jistgħu jkomplu, filwaqt li nipproteġu l-prestazzjoni tas-sistema u l-fiduċja tal-utenti fl-approċċ tagħna.
Biex insolvu dan, bnejna magna ta’ aċċess f’ħin reali li tgħodd l-użu. Wieħed mis-saffi f’dik il-magna huwa l-abbiltà li tixtri credits. Meta l-utenti jaqbżu r-rate limits tagħhom, il-credits iħalluhom ikomplu jużaw il-prodotti tagħna billi jonfqu mill-bilanċ tal-credits tagħhom.
Taħt dan hemm sistema kumplessa li tgħaqqad limits, traċċar tal-użu f’ħin reali, u bilanċi ta’ credits f’mudell wieħed ta’ aċċess. Dan l-artiklu jkopri għaliex l-iskalar ta’ Codex u Sora kien jeħtieġ li naħsbu mill-ġdid fil-kontroll tal-aċċess, kif sistema korretta b’mod provabbli u f’ħin reali tħallat rate limits u credits għal kull talba, u kif dik il-bażi issa tiftaħ aċċess addizzjonali għaż-żewġ prodotti.
Jekk inħarsu lejn l-istampa akbar, il-mudelli tradizzjonali ta’ aċċess għandhom it-tendenza li jisfurzaw għażla:
- Rate limits jistgħu jkunu utli fil-bidu, iżda jħallu lill-utenti b’esperjenza ħażina meta jispiċċawlhom: “erġa’ lura aktar tard”
- Billing ibbażat fuq l-użu huwa flessibbli, iżda jħalli lill-utenti jħallsu mill-ewwel token—mhux ideali biex tappoġġja esplorazzjoni bikrija
Għal Codex u Sora, l-ebda waħda minnhom ma kienet biżżejjed waħedha. Kieku sempliċement għollejna r-rate limits, konna nitilfu kontrolli importanti biex tittaffa d-domanda u tinżamm il-ġustizzja, u jispiċċalna l-kapaċità biex naqdu lil kulħadd. Kieku bbażajna ruħna kompletament fuq billing asinkronu tal-użu, konna ndaħħlu dewmien, overages, jew problemi ta’ rikonċiljazzjoni—eżatt it-tip ta’ problemi li l-utenti jinnotaw meta jkunu l-aktar involuti.
Dak li kellna bżonn minflok kien sistema ibrida waħda li tgħaqqad limits f’ħin reali ma’ aċċess pay-as-you-go:
Din is-sistema kellha:
- Tinforza rate limits sakemm jintlaħqu
- Tgħaddi bla xkiel għall-credits fl-istess talba
- Tieħu dik id-deċiżjoni f’ħin reali
- Tkun rigorużament preċiża u verifikabbli meta ssegwi l-konsum tal-credits
Waħda mill-bidliet kunċettwali ewlenin li għamilna kienet li nimmodellaw l-aċċess bħala kaskata ta’ deċiżjonijiet. Minflok nistaqsu “dan hu permess?”, nistaqsu “kemm hu permess, u minn fejn?” Meta jingħadd l-użu, is-sistema tgħaddi minn din is-sekwenza:
Dan il-mudell jirrifletti kif l-utenti fil-fatt jesperjenzaw il-prodott. Ir-rate limits, il-livelli b’xejn, il-credits, il-promozzjonijiet, u d-drittijiet tal-intrapriżi huma kollha biss saffi fl-istess munzell ta’ deċiżjonijiet. Mill-perspettiva tal-utent, huma ma “jaqilbux sistemi”—sempliċement ikomplu jużaw Codex u Sora. Huwa għalhekk li l-credits jidhru inviżibbli: huma biss element ieħor fil-kaskata.
Ivvalutajna pjattaformi ta’ billing u metering ta’ użu ta’ partijiet terzi biex jimmaniġġjaw il-konsum tal-credits. Dawn huma adattati tajjeb għall-fatturazzjoni u r-rappurtar, iżda ma ssodisfawx żewġ rekwiżiti kritiċi:
Meta utent jilħaq limitu u jkollu credits disponibbli, is-sistema trid tkun taf immedjatament. Għadd bl-aħjar sforz jew b’dewmien jidher bħala blokki sorpriża, bilanċi inkonsistenti, u ħlasijiet żbaljati. Għal prodotti interattivi bħal Codex u Sora, dawn il-fallimenti jsiru viżibbli u frustranti.
Kellna bżonn ukoll noffru trasparenza dwar kull riżultat:
- Għaliex talba ġiet permessa jew imblukkata
- Kemm użu kkunsmat
- Liema limits jew bilanċi ġew applikati
Din il-kapaċità kellha tkun integrata b’mod strett fil-kaskata tagħna ta’ deċiżjonijiet aktar milli tissolva b’mod iżolat f’pjattaforma separata ta’ billing tal-użu li kienet tara biss parti waħda minn dak li kien qed jiġri. Biex inħallu lill-utenti jaċċessaw il-prodotti tagħna mingħajr ma nikkompromettu l-fiduċja, kellna bżonn kontroll sħiħ fuq il-korrettezza, iż-żmien, u l-osservabbiltà. Dan mexxiena lejn soluzzjoni mibnija internament.
Biex inħaddmu dan, bnejna sistema distribwita ta’ użu u bilanċi mfassla speċifikament għal deċiżjonijiet sinkroni ta’ aċċess.
F’livell għoli, is-sistema:
- Tsegwi l-użu għal kull utent u għal kull karatteristika
- Żżomm twieqi ta’ rate-limit
- Żżomm bilanċi ta’ credits f’ħin reali
- Tiddebita bilanċi b’mod idempotenti permezz ta’ proċessur asinkronu streaming
Kull talba tgħaddi minn mogħdija waħda ta’ evalwazzjoni li tieħu deċiżjoni f’ħin reali dwar kemm użu huwa permess billi tikkonsma b’mod sinkronu mir-rate limits u, jekk ikun hemm bżonn, tivverifika li hemm biżżejjed credits; imbagħad tirritorna riżultat definittiv wieħed waqt li tissalda kwalunkwe debitu ta’ credits b’mod asinkronu. Dan jiżgura mġiba konsistenti bejn il-prodotti u jelimina loġika duplikata bejn it-timijiet.
Wieħed mill-prinċipji ewlenin tad-disinn ta’ din is-sistema huwa li rridu nkunu nistgħu nippruvaw li l-billing tagħna huwa korrett. Dan jirrifletti l-għeruq tal-appoġġ tagħna għall-credits, li oriġina ma’ klijenti intrapriża. Fid-dijagramma tas-sistema ta’ hawn fuq, għandna tliet datasets separati li kollha jintrabtu flimkien:
- Avvenimenti tal-użu tal-prodott: X’għamel verament l-utent
- Avvenimenti ta’ monetizzazzjoni: Għal xiex niċċarġjaw lill-utent għall-użu tiegħu
- Aġġornamenti tal-bilanċ: Kemm aġġustajna l-bilanċ tal-credits tal-utent u għaliex
Dawn id-datasets mhumiex prodott sekondarju każwali; fil-fatt huma jmexxu s-sistema, b’kull dataset iqanqal lil dak ta’ wara. Li nisseparaw dak li seħħ, kwalunkwe ħlas assoċjat, u dak li ddebitajna jippermettilna nivverifikaw, nerġgħu ndoqqu, u nirrikkonċiljaw kull saff b’mod indipendenti. Dan huwa trade-off intenzjonat fejn qed nagħtu prijorità lill-korrettezza provabbli, għad-detriment li l-aġġornamenti tal-bilanċ tal-credits ikunu kemxejn imdewma. Kif ksibna dan:
- L-avvenimenti tal-użu tal-prodott jiġu ppubblikati għall-attività kollha tal-utenti, kemm jekk twassal għal konsum ta’ credits kif ukoll jekk le. Dan jipprovdi traċċa ta’ verifika għall-attività tal-utent u jippermettilna nispjegaw għaliex iċċarġjajna, jew ma ċċarġjajnix, credits.
- Kull avveniment iġorr ċavetta stabbli ta’ idempotenza, sabiex retries, replays, jew restarts tal-ħaddiema qatt ma jkunu jistgħu jiddebita doppjament bilanċ, u dan jipprevjeni ħlas doppju. Dan jippermettilna wkoll inwettqu rikonċiljazzjoni batch biex nivverifikaw xogħolna offline.
- Nagħmlu aġġornamenti tal-bilanċ b’mod asinkronu (iżda xorta kważi f’ħin reali) minflok aġġornamenti sinkroni biex noħolqu traċċa ta’ verifika. Nittolleraw dewmien żgħir fl-aġġornament tal-bilanċ tal-utent sabiex inkunu nistgħu nippruvaw li s-sistema qed taħdem u nassiguraw lill-utenti tagħna li mhux qed niċċarġjawhom ħażin. Meta dak id-dewmien qasir iwassal biex naqbżu l-bilanċ tal-credits tal-utent, aħna nirrifonduh awtomatikament; nagħżlu korrettezza provabbli u fiduċja tal-utent fuq infurzar strett.
- Innaqqsu l-Credit Balance u ndaħħlu rekord ta’ Balance Update f’transazzjoni waħda atomika tad-database. L-aġġornamenti tal-bilanċ huma sserializzati għal kull kont, sabiex talbiet konkorrenti qatt ma jkunu jistgħu jikkompetu biex jonfqu l-istess credits. Ir-rekord ta’ Balance Update fih kemm l-ammont tad-debitu kif ukoll l-attribuzzjoni lura għall-avveniment ta’ monetizzazzjoni li qanqal l-aġġornament; li nagħlqu dan f’transazzjoni waħda tad-database jiggarantixxi li għandna traċċa ta’ verifika għal kull aġġustament tal-bilanċ tal-credits.
Din ir-rigorożità kollha tappoġġja għan wieħed: li nagħmlu l-aċċess sempliċi u sigur. Meta n-nies ikunu qed joħolqu jew jikkodjaw, m’għandhomx għalfejn jistaqsu lilhom infushom jekk talba hix se tgħaddi, jekk hux se jiġu ċċarġjati żżejjed, jew jekk il-bilanċ tagħhom huwiex preċiż. Billi nagħmlu l-użu, il-billing, u l-bilanċi korretti b’mod provabbli, nagħtu lill-utenti sistema li ma ttellifx l-esperjenza tagħhom. Dan hu li jippermettilna nissostitwixxu waqfiet iebsa b’aċċess kontinwu—u hu dak li jagħmel il-credits użabbli f’nofs xogħol reali, mhux biss fuq fattura.
Il-prinċipju gwida wara l-approċċ tagħna huwa li nipproteġu l-momentum tal-utent. Kull deċiżjoni arkitettonika torbot lura ma’ riżultat li jara l-utent: bilanċi f’ħin reali jipprevjenu interruzzjonijiet mhux meħtieġa, konsum atomiku jipprevjeni ħlas doppju, u loġika unifikata tal-aċċess tiżgura mġiba prevedibbli. Ir-riżultat huwa li n-nies jistgħu jaħdmu aktar fit-tul, jesploraw aktar fil-fond, u jwasslu l-proġetti aktar ’il quddiem mingħajr ma jiffaċċjaw waqfiet iebsa jew tibdiliet prematuri fil-pjan.
Meta l-utenti jkunu involuti, is-sistema għandha tgħinhom ikomplu, mhux tfixkilhom. Il-limits u l-credits jisparixxu fl-isfond.
Il-bini ta’ dik l-esperjenza kien jeħtieġ li naħsbu mill-ġdid fl-aċċess, fl-użu, u fil-billing bħala sistema waħda u nibnu infrastruttura li tittratta l-korrettezza bħala karatteristika tal-prodott tal-ewwel klassi. L-istess bażi tista’ testendi għal aktar prodotti maż-żmien; Codex u Sora huma biss il-bidu.


