In the course of six months IMVU’s user base quadrupled in size. At the start of this period we were bottlenecked on a single central database. During these six months we evolved IMVU’s architecture to use caching with memcached, replication, horizontal and vertical partitioning to support this growth. We’ll look specifically at implementing horizontal partitioning in a way that makes writing scalable application code easy for non-DB experts. We will focus on the techniques used to incrementally add scalability without having to make large changes to the application layer or disrupt ongoing feature development by the rest of the team.