title: Thin vs Unicorn on Heroku
body: <p>Just wanted to get people's opinions on using Unicorn vs Thin as a rails server. Most of the articles/benchmarks I found online seem very incomplete, so it would nice to have a centralized place to discuss it. </p>
  
  <p>Unicron is a multi-processes server, while thin is an event based/non-blocking server. Event-based servers are great... if your code is asynchronous/non-blocking - vanilla rails is blocking. So unless you use non-blocking rails libraries, I really don't see the advantage of using Thin. Even worse, in a non-blocking server, if your i/o loop is blocking you're going to block the entire loop and not be able to handle any more requests until the blocking call returns. Blocking libraries are going to slow thin down!</p>
  
  <p>Why did Heroku choose Thin as their default server (for cedar)? They are smart guys, so I'm sure they had a reason. </p>
  
  <p>Bellow is a link that suggests replacing Thin with 4 Unicorn workers - this makes perfect sense to me.
  <a href="https://stackoverflow.com/questions/9792290/on-heroku-cedar-should-i-use-thin-or-unicorn">4 Unicron workers on Heroku</a></p>