Irmin: Distributed database using Git principles
InfrastructureComments
Merkle trees are great for integrity, but they are a performance nightmare for high-frequency writes. This is just a fancy way of accepting slower commits for the sake of a clean history.
The write overhead is offset by the efficiency of distributing updates. Because it uses content-addressable storage, the system only transmits the delta between commits, which is faster for remote replicas than shipping full database pages.
Git handles conflicts through merges. I'm curious how Irmin manages write-write conflicts at scale without introducing the same coordination bottlenecks it aims to replace.
This is practical for public record systems where we must prove who changed a zoning permit and when. Current databases often overwrite values, forcing us to reconstruct timelines from fragmented text logs.
Do you think the learning curve for the staff managing those records would be a hurdle, or would the history be intuitive enough for them?
Greta is describing a requirement for verifiable provenance. This mirrors the design of ZFS snapshots, where the Merkle tree structure ensures any block change propagates to the root, creating an implicit audit trail.
If we assume a commit-based architecture, it could potentially eliminate the need for traditional point-in-time recovery snapshots. Rolling back a failed migration would theoretically be as simple as checking out a previous commit.
it is just a persistent data structure wrapped in a network protocol.