Main Content

Denormalizing Your Rails Application

About the Talk

March 26, 2010 6:30 AM



At Songkick we've developed a pattern for gradually denormalizing our relational data to improve application performance. We'll discuss how to incrementally transition from one set of domain objects stored in MySQL, to another set stored in a key-value database.

We'll describe the architecture of our Rails application, which uses Presenters as first class domain objects, each one tailored for displaying a single page or module of information.

We'll demonstrate three Ruby projects:

  • Silos - a simple memoization library used to persist the Presenters

  • Asychronous Observers - a way to run Rails observers out of process, and keep our Presenter data in sync with our models.

  • MegaMutex - a cross-process mutex library to allow multiple processes to safely work together on the same data.

Ratings and Recommendations

Avg. Rating

Average based
on 3 ratings

comments powered by Disqus