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.
#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.
Matching moments
04:29 MIN
An overview of gRPC fundamentals and its trade-offs
gRPC Load Balancing Deep Dive
02:46 MIN
Exploring gRPC for high-performance communication
REST in Peace? What does the API protocol of the future look like? Or do we have it already?
01:08 MIN
Choosing the right API protocol for today's needs
REST in Peace? What does the API protocol of the future look like? Or do we have it already?
02:52 MIN
Tracing the evolution of APIs from RPC to GraphQL
The Great API Debate: REST, GraphQL, or gRPC?
02:21 MIN
Architectural differences between REST, GraphQL, and gRPC
The Great API Debate: REST, GraphQL, or gRPC?
01:31 MIN
Q&A: GraphQL bombs and gRPC for microservices
The Great API Debate: REST, GraphQL, or gRPC?
02:07 MIN
Exploring alternatives to REST like gRPC and GraphQL
Why You Shouldn’t Build a Microservice ArchitectureWelcome 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...
Gerry Schneider
I have a stream! Why it’s definitely worth speaking at tech conferences.Giving talks at certain events is a longed-for goal for many developers. For a good reason: it is the perfect opportunity to share your expertise and passion for a specific topic, help others learn from your mistakes, drive awareness of your solution...
Anto Pranjić
11 Tips to Make The Most Out of Your First World Congress The world’s most awesome event for developers is taking place in less than a month! It’s been far too long since the last time we met in person, but that’s only going to make this year’s WeAreDevelopers World Congress a truly special experience. Conf...