> > > RPC over channels<http://groups.google.com/group/clojure/t/3fde5c39fb97054b> > > > > > toberepla...@gmail.com Aug 01 10:09AM -0700 > > With > ZeroMQ, it might be a router that delivers your request to the machine > it > thinks is most likely to be able to handle the request. The system > serving > your requests could be a single process executing blocking calls to a > third-party http rest api, or it could be a network of load-balancing > machines. > > ...
> > > There would be no intent to solve the messenger problem explicitly -- > those > semantics are up to the user. By default, in the case of server death, > the > client side will just no longer receive responses on its > receive-channel. > In the case of a blocking call, this means that the client side will > hang. > > Hung clients are bad. Reliable request/reply gets hairy very quickly. The zeromq guide devotes a long chapter to it. The simplest (and least useful) approach they suggest is what they call the Lazy Pirate Pattern. The nutshell version: The server listens on a robust socket that can handle multiple requests from the same client (a Dealer, in 0mq terms). The client connects with their brain-dead REQ socket, sends the request, then periodically polls for a response. If it doesn't get a response before some time out, it drops the socket and reconnects. After a certain number of retries, it gives up and notifies the user that it's lost the server connection. There's obviously a lot of black magic going on behind the scenes, but that's a big part of the point of using an MQ. I don't have any idea about how the other MQ's handle this sort of thing. Just to try to keep this on-topic: I haven't had a chance yet to experiment with how well core.async cooperates with 0mq's basic strategy. It looks like there are a lot of really cool possibilities, and I think that some of the projects I'm seeing in this area are really exciting. Regards, James -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.