Jedno jezgro, mnogo aplikacija: kako radi whitelabel bankarska platforma
Whitelabel bankarska platforma je jedno bankarsko jezgro sa zamenljivim front endom. Jezgro je deo koji mora da bude ispravan: knjiga sa dvojnim knjiženjem, korisnički računi, KYC i onboarding, izdavanje i procesiranje kartica, crypto i stablecoin rails, i operatorska konzola koja radi iza svega toga. Aplikacija je deo koji korisnik vidi — njen naziv, boje, oblik ekrana, podskup funkcija koje uključuje. Whitelabel znači da jedno jezgro može da nosi mnogo lica, a da se ne gradi iznova ispod svakog. Jedno jezgro, mnogo aplikacija.
Rečeno jednostavno, to je tvrdnja o tome gde su šavovi. Sve što dodiruje novac deli se, revidira i usklađuje jednom; sve što dodiruje korisnika konfiguriše se po tenantu. Važan inženjerski posao je održati tu liniju poštenom — pustiti front end da se slobodno razlikuje, dok se jezgro na kojem stoji nikad ne forkuje. Ovo je analiza kako se ta linija povlači i zašto je povlačenje pomoću dizajn tokena bolje od povlačenja forkom.
Šta se nikad ne menja: jezgro
Počnimo od polovine kojoj nije dozvoljeno da bude kreativna. Transfer se knjiži na isti način bez obzira na to da li ga aplikacija naziva slanjem, plaćanjem ili isplatom: dva unosa u knjizi sa dvojnim knjiženjem, a ništa se nikad ne briše — knjiga samo dodaje, pa je povraćaj protivknjiženje koje upućuje na original, a ne brisanje. Računi, stanja i autorizacione blokade žive ovde. Kao i KYC i onboarding, izdavanje i poravnanje kartica, te crypto i stablecoin rails. Iza njih stoji jedna operatorska konzola u kojoj svaka privilegovana radnja zahteva razlog i završava u audit logu.
Svega ovoga postoji tačno jedan primerak, i u tome je poenta. Poravnanje, usaglašavanje i usklađenost teško je dobro uraditi, a skupo pogrešno, pa se grade jednom, a svaka aplikacija nasleđuje rezultat. Kada tenant uvede korisnika, KYC nivo koji jezgro odredi prati tog korisnika u konzolu bez obzira na to čiji su ekrani prikupili dokumenta. Jezgro ne zna, niti ga zanima, kako se zove aplikacija iznad — ono vidi račune i unose, ne brendove.
Šta se menja: dizajnerski jezik, informaciona arhitektura, skup funkcija
Sve iznad jezgra slobodno se kreće, duž tri ose. Prva je dizajnerski jezik: boja, tipografija, zaobljenost uglova, razmaci, animacija — vizuelna gramatika brenda. Druga je informaciona arhitektura: šta se nalazi na početnom ekranu, kako se tokovi imenuju i redaju, koja je radnja udaljena jedan dodir, a koja tri. Treća je skup funkcija: koji moduli su uopšte uključeni. Jednostavna aplikacija za transfere i gusta super-aplikacija mogu da rade na istom jezgru, a da ne dele nijedan ekran.
Stranica proizvoda na /products/pay prolazi kroz pet razrađenih pravaca, a najbolje se čitaju kao primeri beskonačno mnogo mogućnosti, a ne kao meni od pet stavki. Halcyon je čist exchange — suzdržan, sa malo ekrana, trgovanje u prvom planu. Lumen je super-aplikacija u kojoj novac putuje unutar razgovora, a chat plaćanja, pretplate i earn dele početni ekran. Fern prednjači transferima — grupne isplate i FX konverzija po pravilima na prvom mestu. Volt je stablecoin build u tamnoj temi sa sorterom plata i timskim karticama. Meridian je multi-valutni: EUR račun pored USDC, GBP putni saldo i BTC račun na koji stižu nagrade za kartice. Pet brendova, pet informacionih arhitektura, pet skupova funkcija — jedna knjiga, jedan KYC, jedan procesor kartica ispod svih.
Ništa od toga ne znači da je proizvod pet aplikacija. Tih pet su pravci kojima isti pipeline može da krene; broj koji je bitan nije pet, već onoliko tenanta koliko uvedete. Svaki je dokaz da se front end može razlikovati sve do oblika početnog ekrana, dok jezgro ispod toga to nikad ne primeti.
Jezgro je deo koji ne smete da izmišljate iznova; aplikacija je deo koji ne smete da ograničavate. Whitelabel platforma je disciplina da obe ove rečenice ostanu istinite istovremeno.
Zašto tema na nivou tokena pobeđuje forkovanje koda
Postoje dva načina da jedan proizvod izgleda kao mnogo njih. Očigledan je forkovanje: kopirate kod za svakog klijenta, promenite izgled, isporučite. Radi tačno jedno izdanje. Posle toga se svaka ispravka greške i svaka regulatorna promena mora primeniti N puta na N kopija koje se razilaze, kopije izlaze iz sinhronizacije, a bezbednosna površina o kojoj morate da razmišljate raste sa brojem klijenata. Forkovanje pretvara jedan sistem koji razumete u mnogo njih koje ne razumete.
Tema na nivou tokena to preokreće. Postoji jedna kodna baza. Brend je skup vrednosti — tokeni za boju, tipografiju, zaobljenost i razmake; konfiguracija komponenti; skup feature flagova — koji se u build-u razrešava u brendiranu aplikaciju. Promenite token i svaki ekran koji ga čita pomera se zajedno, jer ništa ne hardkodira vrednost koja treba da dolazi iz tokena. Ispravka toka transfera stiže do svih tenanta odjednom, jer postoji samo jedan tok transfera koji treba popraviti. Brendovi se razlikuju u konfiguraciji, a ne u izvornom kodu.
Gde se nalazi dizajn sistem
Tokeni nisu labava ideja; oni su isporučen artefakt. Protocore Design System — /products/pds — čini 144 dizajn tokena i 889 utility klasa: rečnik u kojem se tema svake aplikacije izražava. Dark-first je, vođen tokenima i podrazumevano bez zaobljenja (radius nula), a isti skup tokena emituje se za web, .NET i native, pa boja definisana jednom znači istu boju u React ekranu, desktop konzoli i native mobilnom build-u. Brend tenanta izražava se kao override nad tim rečnikom, zbog čega je promena izgleda aplikacije izmena konfiguracije, a ne prepisivanje.
Zbog toga je front end zaista slobodan, a ne slobodan samo unutar šablona. Pošto dizajnerski jezik živi u tokenima i utility klasama, a ne u jednokratnim stilskim fajlovima, dizajner može da odvede tenanta daleko od referentnog build-a — sopstvena paleta, tipografija, gustina i ritam — bez diranja jezgra i bez forkovanja aplikacije. Boja ide duboko, ali je i dalje samo boja; instalacija ispod nje je zajednička.
Aplikacija je konfiguracija, a ne build
Skup funkcija sledi isto pravilo. Svaki modul — chat plaćanja, earn, crypto, kartice, pretplate, timske kartice, preporuke — prekidač je koji se uključuje po tenantu, a flag može da se otvori za deo korisnika pre nego što ide široko. Operateri ih prebacuju iz konfiguracionog panela, a ne kroz deploy. Dakle, razlika između gole aplikacije za transfere i pune super-aplikacije nisu dva projekta; to su dve konfiguracije jednog projekta. Referentna aplikacija od koje svaki tenant kreće neutralan je build sa Protocore brendom i celim menijem — svaki whitelabel je taj build sa prepisanim tokenima i uključenim ili isključenim modulima.
Iskrena granica
Jedno jezgro, mnogo aplikacija vredi te mašinerije samo kada zaista imate mnogo aplikacija — ili jednu aplikaciju koju planirate da vremenom menjate po izgledu, rasporedu i obimu, bez ponovne izgradnje banke svaki put. Ako isporučujete jednu fiksnu aplikaciju koja nikad neće nositi drugi brend, ne treba vam whitelabel platforma; treba vam aplikacija. Svoje mesto zaslužuje u slučaju za koji je napravljena: platforma koja redom podiže brendirane bankarske proizvode za tenant za tenantom, svaki vidljivo svoj, nijedan fork. Celokupna analiza — pet pravaca, referentna aplikacija i operatorska konzola iza njih — nalazi se na /products/pay, a dizajn sistem ispod na /products/pds.
Imate sistem za izgradnju?
Opišite nam problem. Vratićemo se sa arhitekturom i planom.