4 ms·
Thank you for taking the time to write this up, and the interesting anecdote. What I don't see though, is how is making a (g)RPC call any different from making
by apta 6y ago
Thank you for taking the time to write this up, and the interesting anecdote.
What I don't see though, is how is making a (g)RPC call any different from making a REST call? Like you said, the REST call is supposedly more explicit, but at the end of the day, it seems more of a convention and some hard underlying difference. What's the difference between `httpClient.get("...")` and `grpcClient.foo(...)`?
- cmrdporcupine 6y agoThe latter encourages you to model things as remote procedure calls, the former, well, in my experience it's open to incompetence and abuse, too, so... ehh... but done properly... well, go read the Roy Fielding paper :-) I mean, internally at Google we have load balancing for grpc (I'm sure the outside world does now, too, but it was new to me when I joined) -- but load balancing HTTP requests containing readable JSON or XML documents, that's far more sysadmin friendly, wouldn't you say? Off the shelf infrastructure, nothing exotic, easier to monitor. Same goes for caching, for proxies, etc. Being able to just stick a URL for a given resource in your browser, or hit it with wget/curl to read it, that's a serious bonus. In general URLs follow conventions similar to those down by our Unix forefathers, when they designed the filesystem API. We are all familiar with this model. And in some ways REST done right is very Unix philosophy -- provide a consistent model upon which a bunch of little tools can interoperate. I could go on... have to go put my daughter to bed tho
- apta 6y agoThanks again for the detailed response.