
Show HN: Noms – The versioned, forkable, syncable database - aboodman
https://github.com/attic-labs/noms
======
seagreen
Content-addressed / append-only / strongly typed

that looks _perfect_.

Can you talk about how you handle linking to the latest version of a piece of
data? Since the latest version may always be changing you can't use a hash for
that. Git uses branches (which it mutates, so I know you're not following that
model exactly). My personal opinion is that each piece of data should get a
non-human readable, random ID -- that way there's never any incentive to
change it because it can never become inaccurate -- but I'm curious what you
came up with.

~~~
aboodman
Hi! Thanks for the question.

We have _datasets_ , which are analogous to Git's branches. This is the only
mutable state in Noms, and it's just a pointer into the graph.

We also have _paths_ ([https://github.com/attic-
labs/noms/blob/master/doc/spelling....](https://github.com/attic-
labs/noms/blob/master/doc/spelling.md)), which can be used to reference a
stable path deep into the tree.

We have ideas about how to create short, stable IDs that are unique across the
database, but haven't had a strong use case yet.

------
aboodman
Hey all, I'm a founder of Attic Labs, and one of the creators of Noms, happy
to answer any questions.

