Bastian Eicher

Designing gRPC APIs - The things they don't tell you

What if you could evolve gRPC APIs without ever creating a v2? Learn an evergreen strategy for painless, backward-compatible updates.

Designing gRPC APIs - The things they don't tell you
#1about 2 minutes

Combining resource-oriented design with RPC in gRPC

gRPC uses remote procedure calls, but adopting a resource-oriented design philosophy improves API consistency and predictability.

#2about 5 minutes

Choosing a repository structure for your gRPC project

Evaluate different repository strategies, such as a dedicated proto repo or a monorepo, to manage API definitions and generated code effectively.

#3about 2 minutes

Using linters to enforce API design consistency

Use a linter like Buff to enforce consistent API design rules, but understand the rationale behind warnings to know when they can be safely ignored.

#4about 2 minutes

Understanding the wire format to avoid breaking changes

The gRPC wire format uses integer keys instead of message names, which allows for evolving message types without causing a breaking change for older clients.

#5about 5 minutes

Evolving an API without versioning using a fallback pattern

Instead of versioning, evolve an API by deprecating old methods and adding new ones, while clients use a try-catch fallback to handle older server versions gracefully.

#6about 2 minutes

Handling optional fields and nullable types in Protobuf

Be aware that the `optional` keyword and wrapper types for nullability behave differently across programming languages, affecting client-side code.

#7about 3 minutes

Using the richer error model for detailed error handling

Move beyond simple status codes by using the richer error model to send structured, machine-readable error details in a backward-compatible way.

#8about 2 minutes

Implementing authentication in gRPC services

Leverage existing web framework authentication mechanisms or pre-shared keys, and ensure unauthenticated responses include the correct gRPC headers to be compliant.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

Related Articles

View all articles
BB
Benedikt Bischof
Why You Shouldn’t Build a Microservice Architecture
Welcome to this issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Michael Eisenbart who talks about the pros and cons of microservice architecture.‍About the speaker:‍Michael has been working for Bosch as a sof...
Why You Shouldn’t Build a Microservice Architecture
BR
Benjamin Ruschin
What Developers Really Need to Create Great Code Demos
Every developer on earth has, at some point, had another developer to thank for a breakthrough, a success, an aha moment they wouldn’t have had without coming across that blog post, that open-source contribution, that reply on socials or that humble ...
What Developers Really Need to Create Great Code Demos

From learning to earning

Jobs that call for the skills explored in this talk.

Backend Engineer (m/w/d)

Backend Engineer (m/w/d)

fulfillmenttools
Köln, Germany

35-65K
Intermediate
TypeScript
Agile Methodologies
Google Cloud Platform
Cloud Engineer (m/w/d)

Cloud Engineer (m/w/d)

fulfillmenttools
Köln, Germany

50-65K
Intermediate
TypeScript
Google Cloud Platform
Continuous Integration