I wanted to get a better understanding of what does it mean for a web-server to be production-ready and ideas about building my web app stack. I am trying to develop server for REST APIs used in my web-app.
Currently, I am using Flask-SocketIO along with celery in the backend. Celery asynchronously runs heavy tasks on celery and I use web-sockets to emit to the user once the task is complete. I am now planning to put this setup into production. I am aware that native Flask's server is not production-ready as it doesn't scale well (SO/12269537) and should be used with gunicorn/uwsgi/mod_wsgi.
Flask-SocketIO's documentation mentions that it is a production-ready server (possibly because it uses gevent/eventlet WSGI server instead of Werkzeug's development server). But it also mentions that these embedded server options can be replaced with gunicorn/uwsgi with some caveats Flask-SocketIO/issues/#1343.
Given these options, I was wondering what are pros-cons of using the default embedded eventlet server instead of gunicorn? How can I know which web-server will work for my use case?