Data Storage and Versioning: in memory snapshot Diff generation Diff representation human/machine readable -> need a good diff tool UI/experiences can perform diffs based on snapshots