Hey Felix,
I designed it to make use of Javascript's event driven persona and so none of the calls block. Furthermore, the client can reduce I/O waiting times by performing requests concurrently over multiple sockets - the client maintains a set of connections with nodes in the cluster (after bootstrapping). There is also an atomic wrapper that makes some guarantees on the ordering of get/delete/put requests so that the client does not return stale values or mix up the ordering of writes (put/delete) as that can affect correctness. Currently, the client is not using the HTTP socket and protocol, but it can be modified to take advantage of it. A future update perhaps?
I will update you when I am done, but for now I just have to do some book-keeping stuff like packaging it, improving error handling and writing some unit tests. I would love to get your thoughts/suggestions on this though.
Regards,
Rajiv