Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Irmin: A distributed database written in OCaml (irmin.org)
131 points by poga on March 17, 2020 | hide | past | favorite | 8 comments


I wish the presentation page were not using lwt. I'm afraid many onlookers will think: "I can see what's going on in the exemple that's 4 lines of shell but those various sequencing operators in the OCaml source variant baffle me".


I think it would look better if they used OCaml's let-operators. Of course Lwt already has a monadic syntax sugar PPX so they could have used that anyway if they wanted to.


Lately I've been thinking similar thoughts about how git ought to be at the foundation of a lot more of the apps we use.

This is a nice try. Imo it doesn't offer enough functionality above git to justify wide usage. I don't think custom storage backends is a good feature since one of those backends is going to be storing it's data as a file anyway.

It would be nice if the custom merge function api was boiled down to it's essentials and implemented in a few different languages for app coders who want to write distributed version control aware apps. It's easy enough to do with git natively but everyone loves a nice api.


Very cool stuff. I really think that versioned, functional-ish databases are the future.


I think this is great for a certain kind of dataset. I love the idea, and I think the idea to make it a KV store was a great design choice to make the implementation simpler.

I'll be hunting for a reason to use this in the future~


I wonder if LMDB [1] would be a good storage backend for this.

[1]: https://symas.com/lmdb/


Probably. AIUI, LMDB is the backend for Arakoon, another distributed DB written in ocaml.


I have been using SQLite as a decentralized metadata store (with hand-written merges).

Would SQLite + git provide functionality overlapping with Irmin?




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: