Darbo užrašai

Vienas branduolys, daug programėlių: kaip veikia whitelabel bankininkystės platforma

Whitelabel bankininkystės platforma – tai vienas bankininkystės branduolys su keičiama priekine dalimi. Branduolys yra tai, kas privalo būti teisinga: dvigubo įrašo knyga, klientų sąskaitos, KYC ir registracija, kortelių išdavimas ir apdorojimas, kriptovaliutų ir stablecoin trasos bei už viso to veikianti operatoriaus konsolė. Programėlė – tai, ką mato klientas: pavadinimas, spalvos, ekranų forma, įjungtų funkcijų rinkinys. Whitelabel reiškia, kad vienas branduolys gali turėti daug veidų, neperkuriamas po kiekvienu iš jų. Vienas branduolys, daug programėlių.

Paprastai tariant, tai tvirtinimas apie tai, kur eina siūlės. Viskas, kas liečia pinigus, yra bendra, audituojama ir suderinama vieną kartą; viskas, kas liečia klientą, konfigūruojama kiekvienam nuomininkui (tenant). Svarbiausia inžinerinė užduotis – šią liniją išlaikyti sąžiningą: leisti priekinei daliai laisvai skirtis, o branduolys, ant kurio ji stovi, niekada neišsišakoja. Tai analizė, kaip ši linija nubrėžiama ir kodėl brėžti ją dizaino tokenais geriau nei šaka (fork).

Kas niekada nesikeičia: branduolys

Pradėkime nuo pusės, kuriai kūrybiškumas draudžiamas. Pervedimas užregistruojamas vienodai, nesvarbu, ar programėlė jį vadina siuntimu, mokėjimu ar išmoka: du įrašai dvigubo įrašo knygoje, ir niekas niekada netrinama – knyga tik papildoma, todėl grąžinimas yra atvirkštinis įrašas, nurodantis pradinį, o ne ištrynimas. Čia gyvena sąskaitos, likučiai ir autorizacijos rezervacijos. Taip pat KYC ir registracija, kortelių išdavimas ir atsiskaitymas, kriptovaliutų ir stablecoin trasos. Už jų – viena operatoriaus konsolė, kurioje kiekvienam privilegijuotam veiksmui reikia nurodyti priežastį, o jis patenka į audito žurnalą.

Kiekvieno iš šių komponentų yra lygiai vienas, ir tai yra esmė. Atsiskaitymą, suderinimą ir atitiktį sunku padaryti teisingai, o klaidos kainuoja brangiai, todėl jas sukuriate vieną kartą ir leidžiate kiekvienai programėlei paveldėti rezultatą. Kai nuomininkas registruoja klientą, branduolio nustatytas KYC lygis seka klientą į konsolę, nesvarbu, kurios programėlės ekranuose buvo surinkti dokumentai. Branduolys nežino ir jam nerūpi, kaip vadinasi programėlė virš jo – jis mato sąskaitas ir įrašus, o ne prekės ženklus.

Kas keičiasi: dizaino kalba, informacijos architektūra, funkcijų rinkinys

Viskas virš branduolio gali laisvai keistis trimis ašimis. Pirmoji – dizaino kalba: spalva, tipografija, kampų apvalinimas, tarpai, judesys – vizualinė prekės ženklo gramatika. Antroji – informacijos architektūra: kas yra pagrindiniame ekrane, kaip pavadinami ir išdėstomi srautai, kuris veiksmas pasiekiamas vienu paspaudimu, o kuris trimis. Trečioji – funkcijų rinkinys: kurie moduliai apskritai įjungti. Lengva pervedimų programėlė ir sudėtinga super-programėlė gali veikti ant to paties branduolio ir neturėti nė vieno bendro ekrano.

Produkto puslapyje /products/pay aprašytos penkios išplėtotos kryptys, ir jas geriau suvokti kaip begalės galimybių pavyzdžius, o ne penkių variantų meniu. Halcyon – švari birža: santūri, mažai ekranų, prekyba pačiame centre. Lumen – super-programėlė, kurioje pinigai juda pokalbio viduje, o pokalbių mokėjimai, prenumeratos ir uždarbis (earn) dalijasi pagrindiniu ekranu. Fern pirmiausia siūlo pervedimus – masines išmokas ir taisyklėmis grįstą valiutų keitimą. Volt – stablecoin tamsioji versija su atlyginimo skirstytuvu ir komandos kortelėmis. Meridian – daugiavalutė: EUR sąskaita šalia USDC, GBP kelionių likutis ir BTC sąskaita, į kurią patenka kortelės atlygis. Penki prekės ženklai, penkios informacijos architektūros, penki funkcijų rinkiniai – po jais visais viena knyga, vienas KYC, vienas kortelių procesorius.

Tai nereiškia, kad produktas yra penkios programėlės. Tos penkios yra kryptys, kuriomis gali eiti tas pats konvejeris; svarbu ne skaičius penki, o tiek, kiek nuomininkų prijungsite. Kiekviena jų įrodo, kad priekinė dalis gali skirtis iki pat pagrindinio ekrano formos, o branduolys po ja to net nepastebi.

Branduolį jums neleidžiama perkurti iš naujo; programėlės jums neleidžiama varžyti. Whitelabel platforma – tai disciplina, leidžianti abiem šiems sakiniams būti teisingiems vienu metu.
– Protocore · Platformos inžinerija

Kodėl temos tokenų lygmeniu pranašesnės už kodo šakojimą

Yra du būdai, kaip vieną produktą paversti daugeliu. Akivaizdus – šakoti (fork): nukopijuoti kodą kiekvienam klientui, pakeisti stilių ir išleisti. Tai veikia tiksliai vienai versijai. Vėliau kiekvieną klaidos taisymą ir kiekvieną reguliacinį pokytį tenka taikyti N kartų N tolstančioms kopijoms, kopijos išsiderina, o saugumo paviršius, kurį reikia suvokti, dauginasi iš klientų skaičiaus. Šakojimas vieną sistemą, kurią suprantate, paverčia daugeliu tokių, kurių nesuprantate.

Temos tokenų lygmeniu viską apverčia. Kodas vienas. Prekės ženklas – tai reikšmių rinkinys: spalvų, tipografijos, kampų apvalinimo ir tarpų tokenai, komponentų konfigūracija, funkcijų vėliavėlių (feature flag) rinkinys – kuris kūrimo metu paverčiamas prekės ženklo programėle. Pakeiskite tokeną, ir kartu pasikeičia kiekvienas jį naudojantis ekranas, nes niekas nekodina reikšmės, kurią turi imti iš tokeno. Pervedimo srauto pataisa pasiekia visus nuomininkus iš karto, nes pervedimo srautas yra tik vienas. Prekės ženklai skiriasi konfigūracija, o ne šaltiniu.

Kur telpa dizaino sistema

Tokenai nėra laisva idėja – tai išleidžiamas artefaktas. Protocore Design System – /products/pds – tai 144 dizaino tokenai ir 889 pagalbinės (utility) klasės: žodynas, kuriuo tematizuojama kiekviena programėlė. Ji pirmiausia tamsi (dark-first), grįsta tokenais ir pagal numatytuosius nustatymus be kampų apvalinimo, o tas pats tokenų rinkinys generuojamas žiniatinkliui, .NET ir natyviai aplinkai, todėl vieną kartą apibrėžta spalva yra ta pati React ekrane, darbalaukio konsolėje ir natyvioje mobiliojoje programėlėje. Nuomininko prekės ženklas išreiškiamas šio žodyno perrašymais, todėl programėlės išvaizdos keitimas yra konfigūracijos pakeitimas, o ne perrašymas.

Būtent tai priekinę dalį daro tikrai laisvą, o ne laisvą tik šablono ribose. Kadangi dizaino kalba gyvena tokenuose ir pagalbinėse klasėse, o ne vienkartiniuose stilių failuose, dizaineris gali nuomininką nutolinti nuo pamatinės versijos itin toli – sava paletė, tipografija, tankis ir ritmas – nelisdamas prie branduolio ir nešakodamas programėlės. Dažai gali būti giliai, bet vis tiek tik dažai; santechnika po jais bendra.

Programėlė yra konfigūracija, o ne build

Funkcijų rinkinys paklūsta tai pačiai taisyklei. Kiekvienas modulis – pokalbių mokėjimai, earn, kriptovaliutos, kortelės, prenumeratos, komandos kortelės, rekomendacijos – yra jungiklis kiekvienam nuomininkui, o vėliavėlę galima pirmiausia įjungti daliai naudotojų ir tik tada visiems. Operatoriai jas perjungia konfigūracijos skydelyje, o ne diegimu (deploy). Taigi skirtumas tarp paprastos pervedimų programėlės ir pilnos super-programėlės yra ne du projektai, o dvi vieno projekto konfigūracijos. Pamatinė programėlė, nuo kurios pradeda kiekvienas nuomininkas, – neutrali, Protocore ženklu pažymėta versija su visu meniu; kiekviena whitelabel versija yra ta pati versija su perrašytais tokenais ir įjungtais ar išjungtais moduliais.

Atvira riba

Vienas branduolys, daug programėlių – ši mašinerija verta pastangų tik tada, kai programėlių tikrai daug, arba kai viena programėlė, kurią ketinate laikui bėgant keisti išvaizdą, struktūrą ir apimtį neperkurdami banko kiekvieną kartą. Jei kuriate vieną nekintamą programėlę, kuri niekada neturės antro prekės ženklo, whitelabel platformos jums nereikia; jums reikia programėlės. Savo vertę ji įrodo tuo atveju, kuriam sukurta: platformai, kuri nuomininkas po nuomininko kuria prekės ženklo bankininkystės produktus, kurių kiekvienas aiškiai savitas ir nė vienas nėra šaka. Visa analizė – penkios kryptys, pamatinė programėlė ir už jų esanti operatoriaus konsolė – yra /products/pay, o po jais esanti dizaino sistema – /products/pds.

Turite sistemą, kurią reikia sukurti?

Papasakokite apie problemą. Grįšime su architektūra ir planu.