As I see it, any reasonable plan for scaling web applications is going to address 3 questions:
- How can we accomplish more work?
- How can we give the appearance of accomplishing more work?
- How can we avoid doing work that doesn’t matter?
So, how do we address these questions? Well, first, we remember that to the end user, the perception that the application is functioning correctly and with reasonable speed is of topmost importance. Everything else lines up behind these two considerations. Since perception is reality, we quickly discover that we can cheat, and the challenge comes in determining where, when, and how to do so.
Read the rest of this post