4 ms·
I agree that RPC is not equivalent to a local call. However, it's still worthwhile to create an API where making an RPC is as easy as possible, probably by mak
by kentonv 13y ago
I agree that RPC is not equivalent to a local call. However, it's still worthwhile to create an API where making an RPC is as easy as possible, probably by making it look very much like a local call, as Cap'n Proto aims to do.
Note that Cap'n Proto's RPC will support promise pipelining. This means that if one RPC returns a pointer to another interface, you can start making RPCs to the returned interface before the first RPC has actually returned. Basically you're saying to the server "When you finish this RPC, invoke this method on its result.". The hope is that this will make it possible to avoid a lot of round trips even when using a call-return-style interface, thus making it reasonably possible for clients to use the Cap'n Proto interface definition directly without the help of a fat client library. And that, in turn, gives you freedom to use any language that has Cap'n Proto bindings, rather than the specific languages the server chose to support.