This is a very limited type of communication. Asyncio with stuff like crossbar.io allow pub/sub.
> I.e. you shouldn't wait for other tasks, you should have callbacks and errbacks.
This is the old way of doing something async. Callbacks are hard to reason with, compared to async/await.
> (e.g your asyncio app can be killed)
So can your celery workers. It happened to me many times. What's more, celery setups can cause latency problems which will raise errors like something has died, but no, so very hard to debug.
> I'm not sure there's much point in comparing these, they are wildly different concepts: Celery is a distributed system, asyncio is for async I/O, the GIL is only a problem if you can't start n instances of your app.
Well, the main point of the article is that celery is solving the GIL. It's not, it's bypassing it, providing very important benefits and drawbacks, and can be used nicely for a specific set of tasks. I just want to hilight that.
Asyncio does help to live with the GIL since it unifies threads, coroutines and multiprocessing with the same await/async interface. And asyncio can be used to create distributed system even better than celery setup because of this. Again, crossbar.io comes to mind.