I’d probably recommend one of the more modern RPC stacks that are multilanguage interoperable using various interchange formats. For example, https://github.com/mirage/capnp-rpc is maintained and used in infrastructure projects such as the new OCaml-CI infrastructure coming up in https://github.com/ocurrent. The capnp-rpc README files has extensive details on how to try it out.
I agree with @avsm, however ocaml-rpc is deployed in production on XenServer and is still doing its job well. It does also allow to autogenerate an rpc server, ocaml and python library clients, an ocaml cli interface and nice looking documentation from a specification. I don’t think there are public benchmarks though.
Ok will have a look, my main concern was that it would not be the bottleneck (rather the networking overhead would be), with a secondary concern of how well used it is. Thus I was looking at the older and hopefully simpler systems.
That’s very true – I’ve forgotten how much the tooling has improved around ocaml-rpc in recent years! Didn’t mean to besmirch it – simply that the capnp interface is quite shiny in terms of things that a distributed database will probably eventually need (e.g. capabilities). I don’t know enough about what @cjen1 is trying to accomplish with the database to give anything more detailed than that.