
„Zanimljivo ograničenje nije bila tehnička složenost. Bilo je znati koji problem ne rješavati.“
Zahtjev za pasoš i tamo gdje nema interneta
Sistem za izdavanje pasoša i lične karte za nacionalno tijelo za identitet: agenti izlaze ljudima, najosjetljiviji podatak koji država drži preuzima se na telefonu u selu, i čeka na uređaju do mreže.
Problem
Ograničenje
Šta smo uradili
Upload direktno u S3, ne kroz backend
Kad svaki bajt prolazi kroz instancu, treba veća mašina, plaća se prenos koji nije morao postojati i upload pada čim ih krene više odjednom. U sistemu gdje je svaki zahtjev upload fotografija, to nije sitnica nego centralna putanja. Potpisani URL uklanja i usko grlo i trošak odjednom.
S3 + potpisani URL-oviOffline-first, sa poznatom granicom
Zahtjev, fotografije i biometrija spremaju se u secure storage na službenom telefonu i šalju kad se veza pojavi. Nismo gradili puni sistem sinhronizacije jer se scenarij za koji bi služio ne dešava: agent vraća telefon u kancelariju na kraju dana, pa je offline prozor jedan radni dan.
Secure storage · brisanje na daljinuIsti tok za oba dokumenta
Pasoš i lična karta prolaze kroz isti postupak uz različitu cijenu. Dva odvojena toka za suštinski isti postupak znače dvostruko održavanje i dvostruko mjesto za grešku — u sistemu gdje greška znači da neko ne dobije pasoš.
Jedan tok, dvije cijeneNaplata kroz državni gateway
Taksa se plaća kroz nacionalni platni gateway koji pokriva državna plaćanja i jedinstveni račun trezora, uz PayPal za podnosioce izvan zemlje — sistem opslužuje i osobe u postupku sticanja državljanstva. Izbor platnog partnera u javnom sektoru diktira propis, ne kvalitet dokumentacije.
Državni gateway · PayPalPristup registru pod ključem i adresom
Komunikacija sa nacionalnim registrom osigurana je API ključevima, digest autentikacijom i tokenima, a registar prihvata pozive samo sa verifikovanih IP adresa — ukraden ključ sam po sebi ne otvara vrata.
IP allowlist · digest
Agent prikuplja zahtjev, fotografiju lica i fotografiju dokumenta — ili zahtjev bez starog dokumenta. Sve ide u secure storage na službenom telefonu, koji se može obrisati na daljinu ako se izgubi. Da su to bili privatni telefoni agenata, ovakvo rješenje ne bi prošlo.
Rezultat
Ograničen prozor nije opšte rješenje sinhronizacije. To je jedna činjenica o radnom danu, iskorištena namjerno.
Šta bismo uradili drugačije
Nikad nismo testirali šta se dogodi na dan kad pretpostavka pukne — agent koji se ne vrati, telefon koji ostane vani sedmicu. Ograničen prozor bio je ispravan dizajn, ali dizajn koji se oslanja na rutinu treba testirati na tome da rutina izostane.
- React
- Next.js
- Expo
- PostgreSQL
- AWS
- S3
- State payment gateway
- PayPal
- Offline-first
- Biometrija