Если у вас пользовательский сервис, с социальной составляющей то скорее всего у вас будут такие высоконагруженные компоненты:

  • Хранение данных о пользователе
  • Хранение файлов пользователя, это могут быть документы, фотки или видеофайлы, которые надо хранить как есть
  • Поисковый сервис
  • Платежный сервис
  • Скорее всего вы захотите дать возможность пользователям писать сообщения
  • Также у вас могут быть разные уведомления для пользователя
  • Вы будете крутить рекламу и для показа баннеров тоже нужен будет сервис
  • Вы, конечно, захотите отслеживать и активность пользователя, проводить A/B тестирование и разную аналитику
  • Вся эта огромная махина будет требовать мониторинга и сбора статистики, чтобы разработчики могли вовремя реагировать
  • Множество программ на куче серверов будут генерить гигабайты логов, которые разработчики иногда будут читать

Каждая компонента будет иметь специфический профиль использования. Для того, чтобы сэкономить на железе, обеспечить высокую доступность и порадовать пользователя хочется выжимать максимум из железа. А когда больше не выжать, хочется иметь возможность залить проблему деньгами докупив еще серверов. Поэтому для каждого компонента строятся специфические решения учитывающие особенности доступа к данным, этим и объясняется огромное количество No SQL баз данных. И выбрав правильный инструмент, можно очень сильно сэкономить и сделать доселе немыслимое.