First Architectural Principle of Data - The Separation of Truth and Lies

In the real world, there are only 2 types of data - let's call them Lies and Truths. Truths are things that don't ever change (and are derivable from other truths). "The sky is blue" or "iPhone" are examples. In IT we call this read-only data, because you save it once and then it never changes.

The second type of data we will call "Lies". Lies can always change (and are NEVER derivable), thus they MUST be remembered. Forgetting what you lied, effectively destroys the lie - and there are always consequences. In IT this is called read-write data, because you save it and then change it and save it - ad-infinitum. If you don't back it up (remember it in another place), you could lose it forever (a *destroyed* lie) ... and there are always consequences.

A person that ALWAYS lies (a liar) you can usually spot right away. Concentrated lieing takes far too much remembering - and with every new lie comes a requirement to remember and the consequences pile up.
A person that tell truths to gain your favor, waits till you are vulnerable and THEN lies (a backstabber), is the most devastating experience (max consequences).

By separating/combining the 2 different data types, you create large pools of Truths (read-only data).
  1. This saves on disk space (no need to duplicate read-only data).
  2. This speeds up your disk access (reads are always faster from a disk drive than writes)
  3. It minimizes what needs to be backed up (read-only data is backed up once - and referenced forever).
  4. It sets you up for Autonomics (the *breakthrough* IT architecture - discussed separately).
This means that you create the least complex, most efficient use of data. So in order to become a good data architect, one has to dedicate themselves to Truth and to seek out lies. The Good Data Architect hates lies and either *destroys* them (outrageous lies) or throws them all together in one place (lies you can live with). The Separation of Truth and Lies.

Comments