pseudo-immutability
In a filesystem-based structure like a semantic mesh, you can't really prevent changes. But some things in a mesh should be treated as immutable, like snapshot and intramesh identifier.
Pseudo-immutability acknowledges that things might be changed, for various reasons:
- accidental changes
- "cleaning up" of data for legal reasons, e.g.: personally-identifiable information (PII) or "the right to be forgotten."
- fixing of typos or other errors
- re-organizing namespaces
Applications should deal gracefully, and optionally alert users to improperly mutated data.
Pseudo-immutability also acknowledges that:
- for "draft data" especially, "the working version" is going to keep changing until a "weave" happens (i.e., a new version is minted).
- sometimes you want the "latest" data for a given resource. Typically, "current" would be a pointer, redirect, or symlink. But given our goal of static hosting, we've decided just to have duplicate files for the "current" flow and the "most recent version" flow.
Mitigations
- metadata can track changes and supply reasons for mutation
- hashes can be used to detect mutations
Backlinks