This week I was snooping around Dan’s desk looking for something delicious to eat when I came across a document entitled “Ditching Drupal and Moving to Rails,” stamped “Urgent” and “Highly Sensitive!”
Unable to resist the lure of anything that has been stamped (keep me away from post offices and consulates, people!) I got reading, and realized that this was a document of grave importance.
After all, the guts half of this NaNoWriMo Camp and Guts Drive deals directly with this issue: new innards for NaNoWriMo.org in the form of Ruby on Rails!
Despite my anxiety over getting caught, I read on and came upon this:
Almost everything in Drupal is database bound. It uses the database for storing more than just the state of our application, it also stores its structure and logic. Upon every page request, this structure must be retrieved and reassembled before the request can be served. This is the crux of the matter as it leads to a level of database load that grows at a geometric rate with every major enhancement. Queries don’t just grow in numbers, which would be manageable through horizontal scaling, they grow in complexity, which leads to contention within a single database server that is not scalable.
Boom! My mind was blown by the words “crux,” “queries,” and “scalable.” These were all things I could get on board with, but still… I needed to know more.
I wiped the sweat from my eyes, and then this happened:
Nothing is inherently database bound with Rails because Rails makes no assumption that you are using a database at all. What this effectively means is that we will have control over how much and what kind of load we put on our database servers. We can plan from the ground up how our application will function and in what ways it will scale.
In rapid succession, I gasped, took a bit of the half-eaten sandwich on Dan’s desk, and then broke into a happy dance that I call “The Squattie,” and is not remotely food-related like most of Dan’s trademark dances.
Knowing that I was stealing company secrets with every paragraph I read, I couldn’t help but memorize this last bit:
To summarize with an analogy: If you wanted to enter a race but registered a little late and had only one part-timer in your pit crew, you might be best off going with the DERBY*GOKIT®. You can assemble it with a 5mm hex wrench, it requires only a simple paint job, and will give you an exhilarating downhill ride, albeit a rickety one. But next year or maybe the year after, when you’ve finally found your pavement legs, a larger pit crew, and amassed a slew of corporate sponsorships, you’re better off picking up some high-grade aluminum, carbon fiber sheeting, a plasma cutter, a good acetylene torch, and building that dingo-kicking gravity racer of your dreams.
So there it is. A fragment of the whole, but still a compelling argument for moving from Drupal to Rails.
In closing, I’m sorry I snooped and ate some of Dan’s lunch.
But I am not sorry I shared this information with you. I’ll never be sorry for that. Judge me as you must. We’re moving to Rails, baby!
(And yes, I am doing the Squattie again.)
Photo by Flickr user Malakh Kelevra