I found this post when searching HN for "key-value store" posts, because I'm working on my own and wanted to see what other people have done.<p>Fwiw, your take on this is basically a generic blob storage that is (1) keyed by strings with (2) some restrictions on their format and (3) some special semantics stemming from it.<p>In particular, #2 is the fact that multiple / are collapsed into one.<p>#3 is that slashes are used for tokenizing keys when importing/exporting json and for delete operations.<p>There also appears to be a restriction that a node can't have <i>both</i> a value and children, which is consistent with the json model, but not with other hierarchical kv stores, e.g. Windows registry.<p>All in all, there is certainly a value in being able to export/import data as json, but it appears that ALL syntax and semantic restrictions in the datamodel are due to that. So, technically, one can just use generic kv store, allow keys to be in whatever format, and then make SetValueFromJson() take a "path separator" as an argument <i>and</i> also allow it to fail (due to malformed keys or keys having values and children). Ditto for delete.<p>This is less of a critique/feedback and more of "analysis", for myself. Take it for what it is.