Hello,

No I haven't, thanks for the link. In looking through the docs, it seems similiar at some level to what I am doing. I'm trying to get away from the language of threading (In my code, I use chain and io_pumps for context storage) since I'm thinking of node.ocaml as an event based io library. This is probably just a marketing decision, :/, rather than a technical decision.

More context on node.ocaml:

I was recently inspired by unix, memcache, and redis and realized that all you need as a packet format is a single line, so I'm taking that as the packet format and am going to try to build some neat things with it for both my own research/education.

For my research, I want to build a fault tolerant JSON data store where I can get the performance benefits of Redis/Memcache but also have transactional transformations over indexed sets. But not only that, I want it to be easy to build them so it can be extended down the road. I've noticed that from using Redis, there are a lot of design patterns emerging that would be better migrated from the application server to a redis-like server.

For my education, I really want to do something with Paxos that's useful. I'm not sure what, but I've yet to master it and it sounds fun. I'm tempted to build a chubby clone for distributed locking, but who knows.

Oh, I may also cause the universe to explode since I may enable OCaml to call JavaScript via v8... In case it does, I'm sorry now.

On Mon, Aug 23, 2010 at 4:31 PM, Jake Donham <jake@donham.org> wrote:
On Sat, Aug 21, 2010 at 8:27 PM, Jeffrey Barber <jeff@mathgladiator.com> wrote:
> example code:
> http://github.com/mathgladiator/node.ocaml/blob/master/test/kvp.ml

Have you considered using Lwt (http://ocsigen.org/lwt) as a layer on
top of raw continuation-passing style? It has a lot of nice functions
for writing asynchronous code, as well as a syntax extension to make
it look more like direct-style code. It provides a select loop
already, but you don't need to use it, or you could integrate
libevent2 with Lwt's event loop.

Jake