Web applications that process concurrent requests make more efficient use of dyno resources than those that only process one request at a time. 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
![Deploying Rails Applications with the Puma Web Server | Heroku Dev Center](https://cdn-ak-scissors.b.st-hatena.com/image/square/a1b2a24fb8bb6b5daa830ba9854ce4ba0af7b021/height=288;version=1;width=512/https%3A%2F%2Fwww.herokucdn.com%2Fimages%2Fog.png)