Необходимая технология называется Архитектура.
Независимо от того, какую технологию вы используете, вам нужна хорошо спроектированная система для масштабируемости и избыточности.Составьте схему всей архитектуры системы, как она работает в настоящее время.Отметьте каждый компонент с его ограничениями для пользователей, заданий, пропускной способности, места на жестком диске, памяти или любых других частей, которые ограничивают ваше приложение.Это даст вам базовый дизайн.
Теперь нарисуйте ту же диаграмму, какой она должна быть для удовлетворения ваших требований к масштабируемости и избыточности.Возможно, вам придется разбить на части, чтобы заставить его работать, или разработать совершенно новые части.Эта диаграмма очень ясно покажет, что вам нужно.
Одна конкретная вещь, к которой я хочу обратиться, - это база данных.Если вы можете разделить базу данных по логистическим линиям, чтобы не объединять запросы друг к другу, у вас должны быть отдельные базы данных.Кроме того, лучшая конфигурация для базы данных - это иметь каждую базу данных на одной быстрой машине с большим объемом памяти и очень быстрым временем доступа.Если вы сделаете это, единственная вещь, которая замедлит вашу базу данных, это плохие запросы или плохо проиндексированные таблицы.По моему опыту, синхронизации баз данных следует избегать, если у вас нет одной основной базы данных, которая имеет доступ для записи, и она реплицируется в другие базы данных, которые доступны только для чтения.В любом случае, это может быть последним шагом после того, как вы профилировали все свои запросы и вам буквально требуется дополнительное оборудование.