Üks tuum, palju rakendusi: kuidas whitelabel-pangaplatvorm töötab
Whitelabel-pangaplatvorm on üks pangatuum asendatava kasutajaliidesega. Tuum on see osa, mis peab olema õige: kahekordse kirjega pearaamat, kliendikontod, KYC ja registreerimine, kaartide väljastamine ja töötlus, krüpto- ja stabiilmündi kanalid ning kõige taga töötav operaatorikonsool. Rakendus on osa, mida klient näeb – selle nimi, värvid, ekraanide kuju ja sisselülitatud funktsioonide alamhulk. Whitelabel tähendab, et üks tuum saab kanda palju nägusid, ilma et seda iga näo all uuesti ehitataks. Üks tuum, palju rakendusi.
Lihtsalt öeldes on see väide selle kohta, kus asuvad õmblused. Kõik, mis puudutab raha, on jagatud, auditeeritud ja ühitatud ühe korra; kõik, mis puudutab klienti, seadistatakse rentniku (tenant) kaupa. Oluline inseneritöö on hoida see piir ausana – lasta kasutajaliidesel vabalt erineda, kuid tuumal, millel see seisab, mitte kunagi forkida. See on lahkamine sellest, kuidas piir tõmmatakse ja miks disainitokenitega tõmbamine on parem kui forkiga.
Mis ei muutu kunagi: tuum
Alustame poolest, mis ei tohi olla loov. Ülekanne kantakse läbi sama moodi, olgu rakenduses selle nimi saatmine, makse või väljamakse: kaks kannet kahekordse kirjega pearaamatus ja midagi ei kustutata kunagi – pearaamat ainult lisab, seega on tagasimakse vastukanne, mis viitab algsele, mitte kustutamine. Siin asuvad kontod, saldod ja autoriseerimispiirangud. Samuti KYC ja registreerimine, kaartide väljastamine ja arveldus ning krüpto- ja stabiilmündi kanalid. Nende taga on üks operaatorikonsool, kus iga privilegeeritud toiming nõuab põhjendust ja jõuab auditilogisse.
Neist kõigist on täpselt üks, ja selles ongi mõte. Arveldust, ühitamist ja nõuetele vastavust on raske õigesti teha ja kallis valesti teha, nii et need ehitatakse üks kord ning iga rakendus pärib tulemuse. Kui rentnik registreerib kliendi, järgneb tuuma otsustatud KYC tase kliendile konsooli sõltumata sellest, millise rakenduse ekraanid dokumendid kogusid. Tuum ei tea ega hooli, mis selle peal oleva rakenduse nimi on – ta näeb kontosid ja kandeid, mitte brände.
Mis muutub: disainikeel, infoarhitektuur, funktsioonide valik
Kõik tuumast kõrgemal on vabalt muudetav kolmel teljel. Esimene on disainikeel: värv, tüpograafia, nurgaraadius, vahed, liikumine – brändi visuaalne grammatika. Teine on infoarhitektuur: mis on avaekraanil, kuidas vood nimetatakse ja järjestatakse, milline toiming on ühe puute kaugusel ja milline kolme. Kolmas on funktsioonide valik: millised moodulid on üldse sisse lülitatud. Lihtne ülekanderakendus ja tihe superrakendus võivad töötada identsel tuumal ega jaga ainsatki ekraani.
Tootelehel /products/pay käiakse läbi viis väljatöötatud suunda ning neid on parem lugeda kui näiteid lõpmata paljudest, mitte viie valikuna menüüs. Halcyon on puhas börs – tagasihoidlik, vähe vaateid, kauplemine keskmes. Lumen on superrakendus, kus raha liigub vestluse sees ning vestlusmaksed, tellimused ja earn jagavad avaekraani. Fern alustab ülekannetest – esmalt hulgiväljamaksed ja reeglipõhine FX-konverteerimine. Volt on stabiilmündil põhinev tume lahendus palgajaotaja ja tiimikaartidega. Meridian on mitmevaluutaline: EUR-konto USDC kõrval, GBP reisisaldo ja BTC-konto, kuhu jõuavad kaardiprämiad. Viis brändi, viis infoarhitektuuri, viis funktsioonivalikut – kõigi all üks pearaamat, üks KYC, üks kaaditöötleja.
See ei tähenda, et toode on viis rakendust. Need viis on suunad, kuhu sama konveier võib minna; oluline arv pole viis, vaid see, mitu rentnikku te registreerite. Iga neist on tõend, et kasutajaliides võib erineda kuni avaekraani kujuni, samal ajal kui selle all olev tuum midagi ei märka.
Tuum on osa, mida te ei tohi uuesti leiutada; rakendus on osa, mida te ei tohi piirata. Whitelabel-platvorm on distsipliin hoida mõlemad laused korraga tõesena.
Miks tokenitasandi teemastamine võidab koodibaasi forkimise
Ühe toote saab panna paljuna paistma kahel viisil. Ilmne on forkida: kopeeri koodibaas kliendi kohta, kujunda ümber, anna välja. See toimib täpselt ühe versiooni. Pärast seda tuleb iga veaparandus ja iga regulatiivne muudatus rakendada N korda N lahknevas koopias, koopiad lähevad sünkroonist välja ning turvapind, mille üle peate arutlema, korrutub klientide arvuga. Forkimine muudab ühe süsteemi, millest te aru saate, paljudeks, millest ei saa.
Tokenitasandi teemastamine pöörab selle ümber. Koodibaas on üks. Bränd on väärtuste kogum – värvi, kirjatüübi, raadiuse ja vahede tokenid, komponentide konfiguratsioon, funktsioonilippude komplekt –, mis lahendatakse ehitamise ajal brändiga rakenduseks. Muuda tokenit ja iga ekraan, mis seda loeb, liigub koos, sest miski ei kodeeri kõvasti väärtust, mille peaks võtma tokenist. Ülekandevoo parandus jõuab korraga kõigi rentnikeni, sest parandada on vaid üks ülekandevoog. Brändid erinevad konfiguratsioonis, mitte lähtekoodis.
Kus disainisüsteem asub
Tokenid pole lahtine idee, vaid tarnitud artefakt. Protocore Design System – /products/pds – on 144 disainitokenit ja 889 utiliitklassi: sõnavara, milles iga rakendus on teemastatud. See on dark-first, tokenipõhine ja vaikimisi nullraadiusega ning sama tokenikomplekt väljastatakse veebi, .NET-i ja natiivi jaoks, nii et korra defineeritud värv tähendab sama värvi React-ekraanil, töölauakonsoolis ja natiivses mobiiliversioonis. Rentniku bränd väljendatakse selle sõnavara ülekirjutustena, mistõttu rakenduse uus kuvand on konfiguratsioonimuudatus, mitte ümberkirjutus.
Just see teebki kasutajaliidese päriselt vabaks, mitte vabaks ainult malli piires. Kuna disainikeel elab tokenites ja utiliitklassides, mitte ühekordsetes stiilifailides, võib disainer viia rentniku referentsversioonist kaugele – oma palett, kirjatüüp, tihedus ja rütm – ilma tuuma puutumata ja rakendust forkimata. Värv läheb sügavale, kuid on ikkagi vaid värv; selle all olev torustik on jagatud.
Rakendus on konfiguratsioon, mitte ehitus
Funktsioonide valik järgib sama reeglit. Iga moodul – vestlusmaksed, earn, krüpto, kaardid, tellimused, tiimikaardid, soovitused – on rentniku kaupa seatav lüliti ning lipu saab enne laiemat avamist rullida välja osale kasutajatest. Operaatorid lülitavad neid seadistuspaneelilt, mitte deploy kaudu. Seega pole erinevus lihtsa ülekanderakenduse ja täieliku superrakenduse vahel kaks projekti, vaid ühe projekti kaks konfiguratsiooni. Referentsrakendus, millest iga rentnik alustab, on neutraalne Protocore'i brändiga versioon kogu menüüga – iga whitelabel on see versioon üle kirjutatud tokenite ning sisse- või väljalülitatud moodulitega.
Aus piir
Üks tuum, palju rakendusi on masinavärki väärt ainult siis, kui rakendusi on tõesti palju – või kui on üks rakendus, mida kavatsete aja jooksul ümber kujundada, ümber korraldada ja ümber piiritleda, ehitamata iga kord panka uuesti. Kui toote ühte fikseeritud rakendust, mis ei kanna kunagi teist brändi, ei vaja te whitelabel-platvormi; vajate rakendust. Oma koha õigustab see seal, mille jaoks ta tehti: platvorm, mis püstitab brändiga pangatooteid rentnik rentniku järel, igaüks nähtavalt oma, mitte ükski fork. Täielik lahkamine – viis suunda, referentsrakendus ja nende taga olev operaatorikonsool – asub aadressil /products/pay ning selle all olev disainisüsteem aadressil /products/pds.
Vajad süsteemi ehitada?
Kirjelda probleemi. Tuleme tagasi arhitektuuri ja plaaniga.