То есть это учебный проект?
1. Файлы (фото и пр.) хранить на специализированном "облачном хранилище", например, Amazon S3.
2. Репликация не репликация, шардинг не шардинг - зависит от нагрузки. БД делить по смыслу. Например, я бы выделил БД для сообщений, БД для учетки и БД для публикаций. И все эти БД могут быть разного типа.
3. Push-технологию посмотрите, если речь идет о больших нагрузках.