10 - Understanding the ProblemIt was noted that scalability does not speed up an application. A scalable system will always be slower than a single user system. Give the recent debate over Twitter's scalability using Ruby it was also interesting to see the point that "Architecture trumps technology". He comically noted that "even Windows could be scaled". Purdy did say that legitimate technology concerns could include unpredictable scheduling of GC, lack of control over thread scheduling, and lack of asynchronous I/O.
9 - Define the Requirements
8 - Architecture Trumps Technology
7 - Understand the Basics
6 - Visualize the Networks
5 - Visualize the Design
4a - Plan for Overload
4b - Partition for Scalability
3a - Plan for Failure
3b - Replicate for Availability
2 - Tier Where It Makes Sense
1 - Simplify
Purdy went on to state that the challenge of creating a scalable stateful system is to achieve availability, reliability, scalability, and performance while having a system that is manageable and serviceable. At this point the presentation focused on the five patterns of stateful scale-out:
- Routing
- Partitioning
- Replication (Availability)
- Coordination
- Messaging