You're absolutely correct! Single thread approach not gonna work. It will
involve at least two threads to implement such kind of a worker.
I don't wanna mix async layers with sync workers right now. This makes no
sense to me because it still requires threading (asyncio.run_in_executor at
least)
Well, in that case you'd have to invert the API to provide the channel
layer with a callable for new messages and then run an event loop it
controls, which is not going to work with async or most sync code. I think
the best approach for something like that is putting the receive code in a
separate