What is the status of the nameko-grpc?

I have no experience in Python development but I already have a my project’s services prototypes with nameko and I spent only 3 days. Nameko looks great. I did it in two iterations:
1 made prototype with RPC;
2 made the same with gRPC.

But now I don’t know which way should I take? RPC or gRPC? I want to choose gRPC way but the nameko-grpc repository on github was updated 11 month ago. I’m afraid of its status. Is nameko-grpc live?

Also in the first line of README in github I see “prototype” word.

My final questions is:
1 Is it rational to use nameko-grpc in production?
2 Will you advice me to use nameko-grpc extension instead of basic nameko’s functionality?
3 Is it a final API’s design of nameko-grpc or you going to change it to be like in you post?
4 Which other nameko’s extensions are compatible with nameko-grpc? I mean nameko-tracer, nameko-selery, etc.
5 What about grpc and nameko 3.0?

Hi @ksimmi,

Nameko-grpc is not dead, but it’s also not been extensively used (at least that I know of). It is well tested and passes all of the interop tests that the gRPC authors use to verify other-language implementations. But there are sure to be some issues discovered if/when used in production.

On your questions:

  1. Depends on your risk appetite :wink:
  2. gRPC is a much better RPC implementation than Nameko’s built-in one; but Nameko is a much nicer development experience than the standard gRPC one (IMO). That’s why I created nameko-grpc, to get the best of both
  3. The API design is final now
  4. All the other extensions are compatible. Nameko-tracer is not very useful for nameko-grpc in its current form though because it does not support streaming requests or responses.
  5. You should ideally use Nameko 3.0 for new development, but see also this thread: Roadmap to nameko 3.0.0. Nameko-grpc may need some small tweaks to work with 3.0 but IIRC the upgrade path for extensions is pretty simple.

@mattbennett thank you for reply!
I read roadmap post and realized that nameko 3.0 has no documentation but I want to try. As I said before I have no experience with Python and I don’t know how to install nameko 3.0. Should I use directly installation from github or it possible to install nameko 3.0 via some package manager like poetry or pip?

I guess you figured this out already, but for posterity and anybody else wondering: Nameko 3.0 is published as a pre-release and you can install it with pip install --pre nameko