I Reviewed 1,000s of Opinions on gRPC
konfigthis.com
konfigthis.com
The article should mention the Connect protocol for web-based Protobuf messaging and is compatible with gRPC, so it can be used for service-to-service and service-to-web communication:
Seven years (the time since Google made it open source) is immature? Plus however long Google used it internally? Berners-Lee invented HTTP and the web in 1989. By 1996 we had Yahoo!, Altavista, Netscape, and the NY Times had a website.
If not many people use a technology, even if it's old, it doesn't mature.
i just want to mention that i do not use rest, at all. i do use http methods and url routes but i never accept any rest rules for design or behavior. i am using something like json rpc but i am not using a single route to handle all communication. i still use the same approach as grpc does - route per method, but i keep the flexibility of naming and http methods. people seem to be very much stuck with rest and its limitations/rules for some weird reason.
Tho i think it's just a cultural, rather than a technical blockage. REST just has more mindshare, and web developers (who make up the majority of devs using public apis) are pushing JSON based REST as the default.
Edit: source - https://grpc.io/blog/state-of-grpc-web/
It's much easier to do it with REST. In docs you can just have a _curl_ example. And the JSON req/resp are easy to copy-paste anywhere else. You can start experimenting immediately, even in the same browser tab with js console.
With protobuf there is an initial barrier, because before you start you have to download proto definitions or a client library.
gRPC was designed with http2, so it's not like you can swap out the transport with websockets.
There is the grpc-web project which uses HTTP1, but it sacrifices a lot of features that the http2 version offers that you might as well just use REST instead for public-facing services.
Use Protobuf for messages, but just use HTTP for transport.
I don't take either at face-value, e.g. I prefer statically-typed languages but wouldn't tell everyone not to use dynamic ones. I've even seen more recent recommendations to use protobuf with all fields being optional.
Last I checked the grpc transport layer was http with a couple extra headers?
Does grpc have an issue, or is this just general vague pissy anti-modern bellyaching in general? Cause it started insubstantial as heck to start from & if this is the first go to argument, my gods man, zero tolerance for this whiner shit. This is the times. Grpc is not at fault here for using vaguely modern competent protocols. What shit.
https://yuku.takahashi.coffee/blog/2019/01/grpc-proxy-for-gr...
gRPC services are by design client-server likely built in a stateless way. It uses HTTP and exploit the same tools that REST would use for layering such as proxies, etc.
Not sure which parts make it more complex.
gRPC is still over HTTP right?
Most of the other arguments are weak too. I'm not convinced gRPC is any better understood.