Yesterday, one of our customers let us know about significant performance issues they have experienced on Heroku.
“Yesterday” (2/13/2013) is inaccurate – I started discussing the issue with Adam Wiggins (Heroku’s CTO) on 2/5/2013, and sent him the simulation results on 2/8/2013.
On 2/11/2013 he responded with an email that said:
I’m convinced that the best path forward is for one of your developers to work closely with [redacted] to modernize and optimize your web stack. If you invest this time I think it’s very likely you’ll end up with an app that performs the way you want it to at a price within your budget.
You’re correct, the routing mesh does not behave in quite the way described by the docs. We’re working on evolving away from the global backlog concept in order to provide better support for different concurrency models, and the docs are no longer accurate. The current behavior is not ideal, but we’re on our way to a new model which we’ll document fully once it’s done.
In the meantime, you shouldn’t have any difficulties as long as you keep your web requests short (less than about 500ms), which is good practice anyway.
Sorry for any difficulty or confusion, and thanks for digging in and providing such a detailed analysis.
To help improve the meaning of these lyrics, visit “Bamboo Routing Performance” by Oren Teich (Ft. Heroku & LEMON) and leave a comment on the lyrics box