Helloworld example for examining version control of grpc.
Supposing the version of client is newer than server, expected behaviors on following scenarios:
- Adding new interfaces: the call to the server will report an error. This is expected.
- Removing a interface: client will no longer call the removed interface, so there is no problem.
- Updating a message by adding a field: client could continue make request with old versioned server, but server don't see newly added field, which is expected.
- Updating a message by deprecating a field: by following the rule, although it is deprecated, old server won't realize any difference if the deprecated field is continue setting value.
- Removing a message: this should be included on above cases (interface's request/response message couldn't be removed unless the interface is also removed togather, all other messages are field of request/response message).