Warning
Being present in the real world, hardware and software do not always live up to the ideal we would like them to. Data corruption is inevitable. We should audit our data to check its integrity and make sure its still there, and correct. Do not blindly trust things. Therefore, we should try to design for auditability, limiting the amount of transient mutations that occur. One way to do this is to use event-based systems and Logging for events.