This a million times. gRPC / Protobuf allow you to neatly design your messages in a backwards and forewards compatible way. This helps you make changes to your service after your application has been deployed. Why on earth would you try to reinvent something like that?