... Puma is a webserver that competes with Unicorn and allows you to handle concurrent requests. Puma uses threads, in addition to worker processes, to make more use of available CPU. You can only utilize threads in Puma if your entire code-base is thread safe. Otherwise, you can still use Puma, but must only scale-out through worker processes.
It depends, according to the documentation:
Link: Deploying Rails Applications with the Puma Web Server
Thanks!
I have been using puma because it's the "default" way in Heroku, at least for me it's super easy to use it.