Faults in Post Office accounting system led to workers being convicted of theft
Generally, IT systems cannot be inspected or audited. Because they use the wrong data architecture.<p>One of the core problems is the notion of single source of truth, meaning database records are updated in place. IT needs to adopt an accountant's bookkeeping worldview.<p>The Correct Answer is to model organizational behavior as events, capturing state changes in an event log. What accountants call ledgers.<p>Oversimplifying:<p>Ban use of SQL UPDATE, only permit SQL INSERT. (Translate to equivalent operations for your persistence engine.)<p>Do not use separate "Truth" and "Historical" (aka Audit) tables. Unify them into a single table.<p>Do query (SELECT) for what is assumed to be the single best record (SBR). Rather, query for all relevant events (records) and reduce to determine correct answer <i>at this time</i>.<p>--<p>Forgive me for not articulating these ideas very well. My team worked through all these issues in the healthcare space. What seemed obvious to us, like banning SQL UPDATE, was considered radical by pretty much every one else.<p>If any one else is writing about these ideas, please share.<p>And, sorry, no, the new cupcake frosting Event Modeling (Event Sourcing?) is not what I'm talking about.