Chapter 5: Applying Versioning to the gRPC API
So far, we have had a look at the uses of gRPC in ASP.NET Core where both the client and server applications are present in the same solution and rely on the same reference library. When this is the case and the applications at both ends of gRPC communication are in the same repository, then those components are probably meant to be deployed together. This is where API versioning is not critical, as you can simply apply Protobuf changes to both the client and server at the same time. Even if these are breaking changes, only the applications from the same repository will be affected.
But not all gRPC implementations are like this. Quite often, your client and your server will be in different repositories and will be deployed as separate components. It might even be the case that the client and the server are developed by separate teams or even separate organizations. Just like with a REST API, your server might have a public gRPC endpoint...