Hi all,

I'm writing a fediverse server app, similar to kbin https://kbin.pub/en and lemmy https://join-lemmy.org/. It's like reddit except anyone can run a server in the same way email works. This architecture involves a lot of inter-server communication, potentially involving thousands of different servers.

So, lots of network I/O. Lots of tasks running in parallel to do I/O with different servers simultaneously. A fair bit of DB access too.

The current fashion is to do this with cooperative multitasking (async/await/gevent/etc) to avoid the overhead associated with continually context switching threads and processes. Correct me if I'm wrong.

How can I do this with Flask? Any async/await tricks? Can I just configure gunicorn to use gevent worker threads? https://flask.palletsprojects.com/en/2.3.x/deploying/gunicorn/

Has anyone tried Quart? https://pypi.org/project/quart/

How well does gevent monkey-patch into a Flask app?

A penny for your thoughts



Reply via email to