Very interesting! I’ve considered implementing a MVP nameko-like service with aiormq or aio-pika, but never really had the spare time to do so. To me personally, eventlet feels a little bit like a dead end now in light of async being a core language feature of Python.
Furthermore, several libraries I’d like to use with nameko are now embracing asyncio as well. One - as @sonthonaxrk mentioned in the first post - is SQLAlchemy which adds some async support in 1.4. (We’re using SQLAlchemy with nameko/eventlet right now, but that works due to some special treatment of psycopg2 in eventlet).
The other is graphene, which should release v3 soon. It appears that they switched from promise-based APIs to built-in async/await. As long as one uses only the sync APIs of graphene, eventlet monkey patching is sufficient. But what if we wanted to use subscriptions over websockets? I don’t think we could reconcile async/await-based subscriptions with nameko.web.websocket at this moment.
With that said, I’m eager to see any attempt to bring nameko closer to supporting asyncio or multiple concurrency APIs. I’m willing to help, although my asyncio experience is limited to only using async libraries, not developing new ones.
Edit: I’ve dug out a PR that adds gevent compatibility which may be inspiring for future work (when it gets merged and released is another question).