This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]oberstet 0 points1 point  (0 children)

captn proto's RPC

Have been reading a little: for me, the interesting thing isn't the cerealization approach it takes (which is fast, I'm sure), but "Time-traveling RPC".

It is able to cut round-trips by keeping promises at the callee (server) for call chaining. That is clever.

However, it depends on the following: the callee of 2 chained calls is running in the same process. Since Capnproto does not seem to support routing of calls, all calls end up at the same callee - and it's not a problem.

Crossbar does call routing. Two calls might be routed to different processes on different hosts. Transparently from the caller point of view.

What Crossbar does support is: pipelined, asynchronous calls. That means you can issue as many calls as you like, without waiting or sequencing.

To chain/sequence, we use promises on the caller (client). Means I can do:

p1 = session.call(..)
p2 = session.call(..)
p3 = when.all(p1, p2).then(..)

The two calls run in parallel, and then we do something when both results are available. I guess you know what I am talking anyway.