Scalability Rules TOC
We’ve completed the first draft of our new book “Scalability Rules – 50 Principles For Scaling Web Sites” and wanted to share the table of contents with everyone. We have a terrific team of technical editors who are reviewing every rule in detail but would also like to offer this opportunity to anyone else so inclined. Our publisher, Addison-Wesley Professional, has posted the draft versions of Chapters 1-5 (Rules 1-19) on line at Safari Rough Cuts and should have a couple more chapters available soon. If you’re interested in a sneak preview or would like to provide feedback, sign up and take a look. Below is the book’s table of contents.
Chapter 1 – Reduce the Equation
- Rule 1 Don’t Over Engineer The Solution
- Rule 2 Design Scale Into the Solution (D-I-D Process)
- Rule 3 Simplify the Solution 3 Times Over
- Rule 4 Reduce DNS Lookups
- Rule 5 Reduce Objects Where Possible
- Rule 6 Use Homogenous Networks
Chapter 2 – Distribute Your Work
- Rule 7 Design to Split Reads and Writes (X axis)
- Rule 8 Design to Split Different Things (Y axis)
- Rule 9 Design to Split Similar Things (Z axis)
Chapter 3 – Design to Scale Out Horizontally
- Rule 10 Design Your Solution to Scale Out – Not Just Up
- Rule 11 Use Commodity Systems (Goldfish not Thoroughbreds)
- Rule 12 Scale Out Your Data Centers
- Rule 13 Design to Leverage the Cloud
Chapter 4 – Use The Right Tools
- Rule 14 Use Databases Appropriately
- Rule 15 Firewalls, Firewalls, Everywhere!
- Rule 16 Actively Use Log Files
Chapter 5 – Don’t Duplicate Your Work (Nov 30th)
- Rule 17 Don’t Check Your Work
- Rule 18 Stop Redirecting Traffic
- Rule 19 Relax Temporal Constraints
Chapter 6 – Use Caching Aggressively
- Rule 20 Leverage CDNs
- Rule 21 Use Expires Headers
- Rule 22 Cache Ajax Calls
- Rule 23 Leverage Page Caches
- Rule 24 Utilize Application Caches
- Rule 25 Make Use of Object Caches
- Rule 26 Put Object Caches on Their Own “Tier”
Chapter 7 – Learn From Your Mistakes
- Rule 27 Learn Aggressively
- Rule 28 Don’t Rely on QA to Find Mistakes
- Rule 29 Failing to Design for Rollback Is Designing to Fail
- Rule 30 Discuss and Learn from Failures
Chapter 8 – Database Rules
- Rule 31 Be Aware of Costly Relationships
- Rule 32 Use the Right Type of Database Locks
- Rule 33 Pass on Using Multi-phase Commits
- Rule 34 Try Not to Use “Select For Update”
- Rule 35 Don’t Select Everything
Chapter 9 – Design for Fault Tolerance and Graceful Failure
- Rule 36 Design Using Fault Isolative “Swim Lanes”
- Rule 37 Never Trust Single Points of Failure
- Rule 38 Avoid Putting Systems in Series
- Rule 39 Ensure You Can Wire On and Off Functions
Chapter 10 – Avoid or Distribute State
- Rule 40 Strive For Statelessness
- Rule 41 Maintain Sessions in the Browser When Possible
- Rule 42 Make Use of a Distributed Cache For States
Chapter 11 – Asynchronous Communication and Message Buses
- Rule 43 Communicate Asynchronously As Much As Possible
- Rule 44 Ensure Your Message Bus Can Scale
- Rule 45 Avoid Overcrowding Your Message Bus
Chapter 12 – Miscellaneous Rules
- Rule 46 Be Wary of Scaling Through 3rd Parties
- Rule 47 Purge, Archive, and Cost-justify Storage
- Rule 48 Remove Business Intelligence from Transaction Processing
- Rule 49 Design Your Application to Be Monitored
Chapter 13 – Rule Review and Prioritization


Recent Comments