Я хотел бы здесь выделить только один момент. Просто кешируйте свои чтения. Разработайте правильную политику кэширования, в которой вы определяете, какие объекты можно кэшировать и на какие периоды. Наличие фермы распределенного кэширования снимет нагрузку с ваших серверов БД, что значительно повысит производительность.
Даже простое кэширование некоторых фрагментов данных на несколько секунд - в многопользовательском сценарии с очень высокой нагрузкой - принесет вам существенную пользу.
Вот несколько мест для начала:
http://www.cs.cornell.edu/people/~wmwhite/papers/2009-ICDE-Virtual-Worlds.pdf
В частности, http://highscalability.com полон статей об огромных масштабируемых веб-сайтах и о том, как они это делают (Digg, flickr, facebook, YouTube, ...)
Если вы ищете физическую проверку, то, что я обычно нахожу, помогает сделать некоторое прототипирование . Это обычно дает вам хорошее представление о любых непредвиденных проблемах, которые могут быть в вашем дизайне, и о том, насколько легко их добавить. Я бы попытался применить любые возможные шаблоны проектирования, чтобы обеспечить масштабируемость в будущем. Элементы объектно-ориентированного программного обеспечения многократного использования - отличный справочник для этого. Вот несколько хороших примеров, которые показывают до и после кода с использованием шаблонов проектирования. Это также поможет вам представить, как шаблоны проектирования могут сделать ваш код более масштабируемым. Здесь - сообщение SO о конкретных шаблонах проектирования для масштабируемости программного обеспечения.