At what point should you consider gRPC?

Ben Lovy - Nov 2 '18 - - Dev Community

I have an app-in-progress which will use multiple frontends - a web console built with TypeScript/React, a native Android app (Java or maybe Kotlin if I feel adventurous), and a CLI (Rust) all talking to a server (Rust for now, but I'm considering a jump to Spring), with some IoT devices reporting in. I've got bits and pieces of each of these individual components working but this is still very much in the planning stage (and ambitious - this is a long-term idea).

I'd like to use the opportunity to learn how gRPC works and began looking in to capnproto. It seems like a great idea and designed to tackle this exact scenario, but starting to actually implement this is giving me pause.

I feel like I am adding a lot of technical debt for a situation that could likely be handled just fine by a good old RESTful API. Are the benefits going to outweigh the code weight, or do I not understand this tool well enough? Is it worth it to build a REST version first, even though if I do decide to change down the road the switch would require significant rewrites?

I can't tell if I'm running toward something because it's actually a good idea or because it looks cool and I haven't tried it yet. I'd love to hear your thoughts! How are you using gRPC?

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .