Here at Highgroove we like a good challenge, and we love it when we can meet a challenge with a simple and elegant solution.
Recently we had a customer with a great problem to have - they had signed up lots of new customers - but were experiencing some growing pains.
You see - a typical Ruby on Rails app has one database. This customer's app had one database per customer.
Routine tasks like launching servers, deploying code, or migrating databases were taking much longer than normal because they had to be performed per customer instead of just once.
What this app needed instead was Multitenancy - a fancy word for combining the customers into one database.