Understanding deployment of dash app with waitress instead of gunicorn

I know this is not exactly a dash question.
Nonetheless most of the time when I read about dash deployment gunicorn is recommended and waitress second if working on a windows machine.

Now I am working on a windows server so I read into waitress but I dont quite understand how to configure properly.

With gunicorn you can tweak performance by tackling concurrency and parallelism with options like:

--workers or --threads or different worker classes

Now how do I handle this in waitress?
The only option I found is “–threads” and thats it. Does that mean that I am limited to handling I/O bound apps?
Is there no other way to handle concurrency problems?


we use waitress as default process runner in dash.testing as it has better windows support vs gunicorn.

the “limitation” of gunicorn on windows platform is more about its worker models

some of them leverage the power of unix/linux OS which are not easily portable in windows.

another interesting discussion here about slow connection handling like database

you can get more insight from this section,

happy deploy :rocket: