Use the same executable as host process(with clients) and subprocess (with plugins)

We are going to use go-plugin in background worker processes.

  • contains clients and plugins code
  • listens on network
  • receives job and launches itself in plugin mode

Is it valid flow?

Yes, you can do that. Have you encountered any issues you have questions with?

Not yet.I am just in the beginning stages of design.
Placing client and plugin code within one process will simplify development and deployment.
In my design grpc acts as launcher and transport - completely generic code.
Real plugins know nothing about grpc, they are just plain go code
It will be possible to develop and debug plugins separately
Also there is no limit (1 for grpc) on the number of plugins - one grpc plugin will serve any number of go plugins