David Heinemeier Hansson (DHH)
๐ค SpeakerAppearances Over Time
Podcast Appearances
So YGIT is their compiler for Ruby that just makes everything a lot more efficient.
And at Shopify's scale, eking out even a 5%, 10% improvement in Ruby's overhead and execution time is a huge deal.
Now, Shopify didn't need YGIT.
Shopify was already running on the initial version of Ruby that was, I think, 10 times slower than what we have today.
If you look back upon the Ruby 1.8.6 that Topi probably started on, just as I started on, and that was enough to propel Shopify to the scale that it has today.
A lot of the scaling conversation is lost in a failure to distinguish two things.
Scale is kind of one package we talk about when there are really multiple packages inside of it.
One is runtime performance, latency.
How fast can you execute a single request?
Can it happen fast enough that the user will not notice?
If your Rails request takes a second and a half to execute, the user's going to notice.
Your app is going to feel slow and sluggish.
You have to get that response time down below, let's say, at least 300 milliseconds.
I like to target 100 milliseconds as my latency.
That's kind of performance.
How much performance of that kind of latency can you squeeze out of a single CPU core?
That tells you something about what the price of a single request will be.
But then whether you can
deal with one million requests a second, like Shopify is doing right now.
If you have one box that can do a thousand requests a second, you just need X boxes to get up to a million.