Replies: 1 comment
-
Cap'n Proto RPC's transport can be any bidirectional, ordered stream of Cap'n Proto messages. You can adapt the RPC implementation to any transport you like by implementing the abstract interface In practice it's typical to use a TCP socket, possibly with TLS layered on top (KJ provides an AsyncIoStream implementation based on OpenSSL; see The "EZ RPC" APIs use plain TCP (no encryption). But EZ RPC has been removed in the v2 branch since it isn't customizeable enough for most real-world use cases, so people tend to get stuck with it quickly. The lower-level |
Beta Was this translation helpful? Give feedback.
-
I've been looking through the google group archives and the rpc.capnp file. It's not obvious to me what transport layer is being used.
Specifically, I'm considering capnp for as the basis for our startup's inter service communication and I'm curious how responsible it would be to use. The obvious alternative is to use GRPC and Protobufs, but I've been keeping an eye on this protocol for a long time now and would love to adopt it if it's reasonable.
One big question is how we may do load balancing and whether we'd need to build something for it. I'm assuming capnp runs on top of UDP or TCP based on what I was reading, but it wasn't really clear.
I'd imagine the answer is that we could just use an off the shelf layer 4 load balancer and would have to implement our own layer 7 load balancer, but I do need to confirm.
Beta Was this translation helpful? Give feedback.
All reactions