3 ms·
gRPC is probably worth mentioning in this thread (new since the article), though I haven't used it yet and have no idea if it can satisfy his asynchronous requi
by math 11y ago
gRPC is probably worth mentioning in this thread (new since the article), though I haven't used it yet and have no idea if it can satisfy his asynchronous requirement.
He considers using message queues and dismisses the idea because "you're still on your own in implementing an RPC mechanism on top of that. And for the purpose of building a simple RPC mechanism, I'm convinced that plain old UNIX sockets or TCP will do just fine.".
In my experience, getting an arbitrary sized message from A to B over a potentially unreliable network is the difficult bit and implementing a basic RPC mechanism is pretty easy. I did a project that required a lot of IPC and ended up using nanomsg (also not mentioned in the article.. it's very similar to zeromq) for [fast] reliable message delivery and wrote my own basic RPC layer on top of this (NanomsgRPC - currently C# only ..). This worked pretty well for me.
A note on nanomsg though: I wouldn't consider it stable enough for production use, but that said, it didn't give me any problems for what I used it for.