Skip to content
C.W.K.
Stream
Lesson 03 of 05 · published

Versioning Is Not Backup

~11 min · versioning, backup, durability, failure-domain

Level 0Trace
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

They answer different questions

Versioning asks who changed what, when, and what the previous content was. Backup asks whether data can be recovered after the source device or site disappears. Both concern the past, but their failure hypotheses differ.

A live vault, mirror, and bare repository on one computer all disappear under one disk failure. Ten thousand commits still provide zero independent copies. An offsite copy without history may survive disaster but offer little help finding yesterday's one-line mistake.

Durability belongs to its existing chain

A bounded product recognizes the durability chain already in place instead of inventing another. Independent devices, network storage, and encrypted offsite copies can protect both source and ledger while Vestige contributes version history.

Adding another Git remote is not automatically safer. Soul memory is sensitive plaintext; a provider, credential, and exposure surface arrive with it. The existence of a backup need does not authorize one product to expand the trust boundary.

UI vocabulary is an invariant

If users can read Versioned as Backed Up, the status is dishonest. Show last commit and last durable backup as separate facts, or omit a backup badge when the product cannot observe durability.

The distinction changes incident response. Corrupt history is rebuilt from live truth, device loss is restored by the backup owner, and an accidental edit uses a historical blob in a forward write. Combining the words causes three runbooks to collide.

Build the failure table

List accidental edit, history corruption, disk loss, site loss, and credential theft. Mark which copies survive each row. Designs that confuse versioning with backup usually pass only the first two rows because all copies share a failure domain. Encryption and restore rehearsal are required before a durability claim is complete.

A commit may be a recovery point, but it is not proof of an independent copy. Version history and durability need different owners and evidence.

Code

Count copies by failure domain·python
copies = {
    "live": {"device": "laptop", "site": "home"},
    "mirror": {"device": "laptop", "site": "home"},
    "offsite": {"device": "server", "site": "remote"},
}

def survives_device_loss(item):
    return item["device"] != "laptop"

assert sum(survives_device_loss(v) for v in copies.values()) == 1

External links

Exercise

List your version histories and backups. Mark whether each survives disk loss, credential theft, and accidental editing. When all fail in the same row, add a failure domain rather than another path.
Hint
Three paths under one device and credential can die like one copy.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.