When abstracting gRPC details for the WorkerChannel abstraction, there are things that still live under the grpc scope that are not grpc specific: pretty much every message in worker.proto that is not the service definition.
It'd be nice to split the worker.proto file in two:
worker_service.proto: this will live under the grpc scope, importing the messages from messages.proto.
messages.proto: root file on a protobuf/ module.
The protobuf/ module should not be gated behind the grpc flag, as it's something that probably anyone that is willing to implement a WorkerChannel should be using.
When abstracting gRPC details for the
WorkerChannelabstraction, there are things that still live under thegrpcscope that are notgrpcspecific: pretty much every message in worker.proto that is not the service definition.It'd be nice to split the
worker.protofile in two:worker_service.proto: this will live under thegrpcscope, importing the messages frommessages.proto.messages.proto: root file on aprotobuf/module.The
protobuf/module should not be gated behind thegrpcflag, as it's something that probably anyone that is willing to implement aWorkerChannelshould be using.