The Puma web server was built for parallelism, but unfortunately, the standard MRI implementation of Ruby is not. Rubinius is an implementation of Ruby that was built with the purpose of solving MRI's concurrency problem. With Rubinius, we will be able to achieve true parallelism in our application. Puma's threaded processes in combination with Rubinius can give our application a huge performance boost. In this recipe, we will learn how to set up our application to run on Rubinius.
To start, we'll need an existing Heroku application that is running on Puma. Specific directions are available in the previous recipe, Setting up and running Puma on Heroku: