Безгражданство огромно, как отметил Итай. Планируйте масштабировать OUT, а не UP, когда это возможно. Слабая связь облегчает и буферизует путь к масштабируемости. При необходимости используйте параллелизм, будь то параллельное выполнение на серверах или многопоточность в рамках одного процесса или службы. Избегайте слишком больших нагрузок на сервер (ы) БД. Рассмотрим стратегии разделения / разбиения. По возможности используйте кэширование.
Также обратите внимание: масштабируемость! = Доступность. Если есть проблема с доступностью, необходимо решить и другие проблемы.
Еще одно замечание: приборостроение! Инструмент / настраиваемый лог / настраиваемый трек ВСЕ! Если вы не можете получить подробную информацию о поведении компонента вашей системы, масштабирование становится более сложным и более дорогим. Теперь это не означает, что вы должны запустить свою производственную систему с запущенным кодом трассировки ввода / вывода, но это означает, что вы должны убедиться, что у вас нет пробелов, и устранять их по мере их обнаружения, иначе вы будете гоняться за хвостом и исправление неправильных проблем.