Revizija bez ponavljanja je fikcija
Revizija nije posmatranje.
Revizija je verifikacija.
Verifikacija zahteva ponavljanje.
Bez ponavljanja, revizija je fikcija.
I. Svrha revizije
Revizija postoji da odgovori na jedno pitanje:
Da li se ovo zaista desilo kako je rečeno?
Na ovo pitanje ne može se odgovoriti logovima.
Ne može se odgovoriti izveštajima.
Može se odgovoriti samo ponavljanjem.
Ponavljanje znači: sa istim ulazima, izvršiti istu logiku, posmatrati isti rezultat.
Ako se rezultat razlikuje, tvrdnja je lažna.
II. Trenutno stanje revizije
Moderni poslovni sistemi proizvode revizijske artefakte:
- log fajlove
- istorije promena
- zapise odobrenja
- tragove vremenskih oznaka
Ovi artefakti opisuju šta se desilo.
Ne dokazuju šta se desilo.
Opis nije dokaz.
III. Zahtev za ponavljanjem
Sistem je revizibilan samo ako:
- Svi ulazi su zabeleženi
- Svi ulazi su nepromenljivi
- Izvršni put je deterministički
- Ponovno izvršavanje proizvodi identične rezultate
Ako bilo koji uslov ne uspe, revizija je nemoguća.
Većina poslovnih sistema ne zadovoljava nijedan od četiri uslova.
IV. Zašto ponavljanje ne uspeva
Ponavljanje ne uspeva jer sistemi nisu dizajnirani sa revizijom na umu.
Česti propusti:
- Promenljivo stanje: ulazi se ažuriraju naknadno
- Drift konfiguracije: pravila se menjaju između izvršavanja i revizije
- Nedeterministička logika: ishodi zavise od tajminga ili okruženja
- Nedostajući kontekst: nisu svi ulazi zabeleženi
Svaki propust čini ponavljanje nemogućim.
Svaka nemogućnost čini reviziju fikcionalnom.
V. Cena fikcionalne revizije
Kada je revizija fikcionalna:
- regulatori ne mogu da verifikuju usklađenost
- sporovi se ne mogu definitivno rešiti
- istorijske odluke se ne mogu odbraniti
- poverenje se zasniva na reputaciji, ne na dokazima
Cena nije odmah vidljiva.
Pojavljuje se tokom krize.
Krize razotkrivaju fikciju.
VI. Arhitekturalno rešenje
Revizija mora biti ugrađena u izvršni sloj.
Zahtevi:
- Event sourcing: sve promene se beleže kao nepromenljivi događaji
- Bi-temporalnost: i vreme važenja i vreme transakcije se beleže
- Determinističko izvršavanje: isti ulazi uvek proizvode iste izlaze
- Sposobnost ponavljanja: svaka prošla odluka može da se ponovo izvrši
Ovo nisu funkcionalnosti za kasnije dodavanje.
To su fundamentalna ograničenja.
VII. Konačni zaključak
Revizija bez ponavljanja nije revizija.
To je teatar.
Sistemu koji ne može da dokaže svoju prošlost
ne može se verovati sa budućnošću.
Sposobnost ponavljanja nije opciona.
To je minimalni zahtev za upravljan sistem.
Bez ponavljanja nema revizije.
Bez revizije nema upravljanja.
Bez upravljanja nema sistema.
Samo priče.
SHA-256: 545cb3b5f2b5958cc614f410c0264a3d25bbbc3dba035c0b2ff995a622f7298b