Preskoči na sadržaj
Dvije vodoravne tirkizne linije na tamnoj mreži: gornja je isprekidana i kroz nju prolaze četiri prazna pravougaonika, donja je puna i na njoj stoji jedan ispunjeni pravougaonik, dvije male tačke i kratka okomita crtica.

„Ništa nije puklo. Dokument je tiho postao drugi dokument.“

Ono što je nastalo nije ono što vrijedi

Tri sistema, tri domena, jedna odluka: razdvoji trenutak kad nešto postoji od trenutka kad važi.

Kontaktirajte nas
Tri angažmana · carinsko fakturisanje, 2020 · terminali za uplate, 2022 · platforma za sastanke, 2023
3
sistema, tri domena, tri godine
0
izdatih dokumenata izmijenjeno poslije
1
odluka: postoji nije isto što i obavezuje
Ukratko

Carinskom organu trebale su fakture koje se nakon izdavanja nikad ne mogu promijeniti. Terminalu za uplate trebalo je štampati kupon bez mreže, a bez rizika dvostruke isplate. Platformi za sastanke trebala je bijela tabla koja preživi sastanak kao nešto s čim se još može raditi.

Tri nepovezana proizvoda, tri nepovezane godine — i svaki put isti odgovor. Ono što sistem čuva mora razlikovati „ovo postoji“ od „ovo obavezuje“.

Problem

Šablon se promijeni. Raspored se ispravi, pravna napomena osvježi, logo zamijeni. Onda neko otvori dokument izdat dvije godine ranije i vidi ovogodišnji šablon — sa ovogodišnjim pravnim tekstom, na zapisu potpisanom pod drugim uslovima.

Ograničenje

Ništa nije puklo. Nijedna greška nije prijavljena. Dokument je tiho postao drugi dokument, i arhiva je prestala biti arhiva. Isti oblik pojavljuje se svuda gdje nastanak i važenje mogu odlutati jedno od drugog: kupon štampan bez mreže, tabla koja postoji samo kao snimak ekrana.

Šta smo uradili

  1. Carinske fakture: zamrznute u trenutku izdavanja

    Zahtjev je bio apsolutan — izdata faktura se ne smije nikad promijeniti. Zato se dokument u trenutku izdavanja renderuje i čuva kao nepromjenjivi HTML. Kasnije izmjene šablona ne diraju ništa što je već izdato.

    Izdato je izdato
  2. Definicija dokumenta odvojena od izdatog dokumenta

    Šablon je slobodan da se razvija; istorija ostaje netaknuta. Druga korist se lahko propusti: zamrznuti izlaz više ne zavisi od buduće ispravnosti koda koji renderuje. Da su se dokumenti renderovali na zahtjev, svaka izmjena tog koda retroaktivno bi izmijenila svaki stari dokument.

    Ne zavisi od budućeg koda
  3. Kupon se štampa — i ne vrijedi

    Primalac diže novac na benzinskoj pumpi pomoću koda kupona. Terminal mora raditi kad mreža ne radi, ali kupon isplaćen dvaput je jedini kvar koji košta stvarne pare. Zato kupon postaje važeći kad sistem to kaže: automatski kad se veza vrati, ili ručno preko operatera, kojem se signalizira da postoji neaktiviran kupon.

    Bolje neupotrebljiv nego dvaput isplaćen
  4. Bijela tabla kao objekti, ne kao slika

    Tabla se čuva kao strukturirani objekti umjesto ravne slike — svaka linija, oblik i tekst zadržavaju svoja svojstva. Tabla se može ponovo otvoriti i mijenjati, a ne samo pogledati.

    Preživi zatvorenu sesiju
TRI DOMENA, ISTA RAZDVOJENOST
Carinska faktura šablon se mijenja

Izdati dokument se renderuje i čuva kao nepromjenjivi HTML. Kasnije izmjene šablona ne diraju ništa izdato — i zamrznuti izlaz ne zavisi od buduće ispravnosti koda koji renderuje.

Svaki sistem koji proizvodi dokumente na kraju sretne isto pitanje, a većina ga sretne prekasno.

Rezultat

Tri proizvoda u kojima je zapis preživio kontakt sa onim što ga obično uništi — izmjenom šablona, izgubljenom vezom, zatvorenom sesijom.

Šta bismo uradili drugačije

Na carinskom sistemu zamrzavanje izdatog dokumenta bilo je ispravno ali nepotpuno: nikad nismo verzionisali sam šablon. Pa dok se nijedna izdata faktura nije mogla promijeniti, nije postojao zapis o tome koja verzija šablona ju je proizvela, ni ko ga je mijenjao i kada. Snimak je odgovorio na hitno pitanje i ostavio revizijsko otvorenim.

Srodno
Čipovi pasoša i platni terminaliIsti terminali, gledani sa strane hardvera.Dozvole kao graf na HIPAA platformiIsta platforma za sastanke, drugo pitanje: smije li ovo neko vidjeti.
Svih 18 projekata
  • Node.js
  • PostgreSQL
  • Kotlin
  • Fabric.js

Arhiva vam se mijenja kad se šablon mijenja?

Kontaktirajte nas

Sistemi koji ne smiju stati — od arhitekture do produkcije.

© 2026 Micro Tech, Sarajevo