One of the nice problems to have as a startup grows is scaling the web app. Scaling the web app encompasses not only the back-end infrastructure but also the user interface components as well. We like to take the approach of providing oxygen (client usage) to the new features and improvements as quickly as possible and iterate from there, resulting in scaling rework once the need arises.
Here are a few tips to keep in mind when scaling a web app on the front-end and back-end:
- Consider caching the values of any SQL COUNT() calls as new columns in the database updated asynchronously on a schedule (we’ve encountered this many times resulting in performance hits until they are corrected)
- Be wary of database-level full-text searching or advanced searches of structured information as specialized indexers like Sphinx and Lucene are much better suited
- Any user interaction that takes more than five seconds should put in a background job that triggers a message to the user when complete
- Consider the user experience when something like a drop down or chooser has a large number of fields (e.g. once a drop down has more than 15 choices have it change to a type-ahead selector or some other input type)
- Implement an aggressive archiving plan early of for any data that isn’t critical and can accumulate over time as it is harder to take things away later as opposed to providing more (e.g. how much time certain data is available before it is purged)
These are just a few of the items to be cognizant of when scaling the front and back-end of a web app.
What else? What are some other tips for scaling?

Leave a reply to Charles Brian Quinn Cancel reply